我正在寻找最佳实践。

在我的应用中,我向服务器发送了一个请求,要求我下载图像的URL和一些元数据。然后,我需要将这些图像存储在磁盘上。保存后,我必须更新视图。离线视图也需要在磁盘上存储,因此也许我什至必须将文件路径存储到CoreData。

我想我可以使用NSURLConnection检索图像URL,然后将图像然后将它们写入磁盘。我担心的是,应用程序正在等待所有这些发生时该怎么办?我怎么知道何时更新表等?如果用户移开视图并卸载,该怎么办?只是在寻求建议。

我应该创建一个单独的NSObject类来处理所有这些吗?

PS:无论如何我该如何检查现有的互联网连接?

最佳答案

如果您已经在使用CoreData,请考虑将图像直接存储在CoreData-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:

07-24 18:02
查看更多