iPhone:启动时加载队列

标签 iphone objective-c queue startup

我没有在任何地方找到这个问题的答案,但这似乎是一个典型的问题:

我想发送一些 POST 请求(使用 ASIHTTPRequest,我已经做了),但是如果出现问题,用户可以决定“稍后再试”,这意味着任务应该放在队列中并且下次应用程序启动时应读取此队列。那么,这就是我的问题:如何“保存”队列,以便应用程序下次启动时可以读取它?是否可以“读取”队列并尝试再次发送此 POST 请求,比方说,10 分钟后,即使应用程序未运行?

为了能够做到这一点,我应该阅读什么样的文档?

我很乐意听到任何答案。提前致谢。

P.S.:我有另一个想法:因为我只需要上传照片,我可以有一个包含所有仍需要上传的照片的文件夹,当应用程序启动时,应用程序会查看这个文件夹并尝试发送此文件夹中的所有照片。有道理吗?

最佳答案

我对这个问题的处理方式是这样的:

  1. 每当您未能发送详细信息时 - 使用'[NSArray writeToFile:]'将数组内容写入文件,如果数组包含任何自定义数据(如果您的数组包含标准 cocoa 对象(NSString, NSData 等)他们已经用序列化实现了)
  2. 应用启动时;将文件中的内容直接加载到数组对象 ('[NSArray arrayWithContentsOfFile:]')
  3. 然后构造http请求并尝试发送。在应用程序中,数据(在你的情况下是数组)被存储/序列化而不是请求,当你想再试一次时需要重建 http 请求。(不要尝试序列化 ASIHTTPRequest,你已经重建了它)

关于iPhone:启动时加载队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3270424/

相关文章:

iOS:如何增加 NSURLSession 上传任务的 block 大小?

queue - 全循环队列?

java - 可以有多个 AWT 事件队列吗?

iphone - MKAnnotation仅在区域内

iphone - 对 <FirstViewController : 0x2a2c00> 的开始/结束外观转换的调用不平衡

ios - 在 Xamarin.iOS DYLD 中集成时,代码签名对于 iOS Objective C Umbrella 框架无效,库未加载 : App Crash

iphone - 创建一个 UIWebView 并以编程方式加载网站

iphone - NSURLConnection 分块编码上传 - 如何?

ios - 如何更改 UITableview 索引栏选定索引的颜色

queue - 不使用队列可以进行广度优先搜索或广度优先遍历吗?