在应用程序被终止时将NSOperations存储
问题描述:
我正在开发一个大文件的下载队列。我管理NSOperations
正在下载或等待下载NSOperationQueue
,我也将它们存储在NSMutableDictionary
与他们的密钥。在应用程序被终止时将NSOperations存储
我想开发与PodCasts应用程序相同的功能。我的意思是,如果用户正在下载一些播客并彻底杀死该应用程序,如果他/她重新启动应用程序,则操作会继续下载他们所在的位置。
那么,他们如何存储挂起的操作?我曾尝试使用userDefaults
来存储等待NSOperations
的NSDictionary
,但由于NSOperation
未实现NSCopying
,因此不可能这样做。
所以,我想知道哪个是处理这种行为的最好方法......?
有什么想法?
谢谢!
答
我认为你可以创建一个存储你的下载进度的实体,同时你不断在光盘上写入该文件。当您从网络层下载一个块并在applicationWillTerminate回调中将进度存储回数据库时,更新实体的进度。然后,当您再次打开应用程序时,则可以根据下载进度从网络层请求下一个块。