我正在寻找最佳实践。
在我的应用程序中,我向服务器发送了一个请求,要求我下载需要下载的图像的URL和一些元数据。然后我需要将这些图像存储在磁盘上。保存后,我必须更新视图。离线视图也需要存储在磁盘上,所以我甚至可能需要将文件路径存储到CoreData。
我想我可以使用NSURLConnection来检索图像网址,然后是图像,然后将它们写入磁盘。我担心的是当应用程序等待所有这些发生时我该怎么办?我如何知道何时更新,例如表格?如果用户离开并且视图卸载怎么办?只是在寻找建议。
我应该创建一个单独的NSObject类来处理所有这些吗?
PS:在我做任何此事之前,我如何检查现有的互联网连接?
答案 0 :(得分:1)
如果您已经在使用CoreData,请考虑将图像直接存储在CoreData-DB中。当然,这取决于图像的大小。 对于db的同步,这可能会有所帮助:http://www.raywenderlich.com/15916/how-to-synchronize-core-data-with-a-web-service-part-1。他们还使用一个单独的类来处理这个问题。 要检查互联网连接,苹果有一个很棒的示例应用程序: https://developer.apple.com/library/ios/samplecode/Reachability/Introduction/Intro.html
编辑:哦,NSURLConnection默认情况下异步加载数据,因此您的应用程序将在数据加载操作期间保持响应,您可以在相应的回调方法中处理update-vioew-operations。
查看文档:
https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURLConnection_Class/
要特别注意区别
sendAsynchronousRequest:queue:completionHandler:
和
sendSynchronousRequest:returningResponse:error: