我正在开发一个iPhone应用程序,即将发布第2版.我们将改变核心数据模型,我想在模拟器中模拟升级过程,然后再将其发布给用户,并可能导致数据丢失.在释放之前,似乎没有任何关于如何在沙盒中执行此操作的真正好的计算方法.
在我的应用程序中,我通过CoreData检索,解析并将XML数据保存到sqlite数据库.此数据对于应用程序的运行至关重要,并且需要离线使用.我的最低目标是iOS 4.3
这不是用户生成的,因此我无法将其存储在/ Library/Documents中
资料来源:https://developer.apple.com/library/ios/#qa/qa1719/_index.html
因此,除了将我的数据存储在/ Library/Caches文件夹中之外别无选择.iOS可以随时清除此目录.
这是否意味着我的应用程序随时下载新数据(通过xml)并使用......保存
[managedObjectContext save:&error]
... 我首先要检查MyData.sqlite是否仍然存在?
如果没有,那么我将需要"恢复"CoreData堆栈,然后警告可能需要获取新指针的任何其他对象,或者修改它的managedObjectContext的persistentStoreCoordinator.
这个解决方案似乎不对,但是基于iOS 5.0不支持"不备份",Apple的数据存储指南以及/ Libraray/Caches目录的清除方式,我不知道有什么其他选择.