Apple会从itunes删除应用更新的核心数据吗?

时间:2012-08-28 06:23:21

标签: iphone objective-c ios

我在我的应用程序的第一个版本中使用sqlite来存储一些数据,现在我必须更改某些表的结构。

请注意,我之前发布了新版本并注意到数据库在更新后被删除,因为我在更新后没有看到数据库记录,并且它再次开始注册行。

我的问题是我是否需要在更新时处理表删除,以及为什么苹果删除上一次更新中的表?

2 个答案:

答案 0 :(得分:2)

这取决于数据库文件的名称,表名和位置。

来自Apple的编程指南: 当用户下载应用更新时,iTunes会将更新安装在新的应用目录中。然后,在删除旧安装之前,它会将用户的数据文件从旧安装移动到新的app目录。保证在更新过程中保留以下目录中的文件:

<Application_Home>/Documents
<Application_Home>/Library

虽然其他用户目录中的文件也可能被移动,但您不应该在更新后依赖它们。

参考:http://developer.apple.com/library/ios/#DOCUMENTATION/iPhone/Conceptual/iPhoneOSProgrammingGuide/PerformanceTuning/PerformanceTuning.html

答案 1 :(得分:0)

更新后您没有看到任何数据的原因有多种。例如,第二次更新中的代码可能已更改数据库文件的名称,或某些表或字段的名称。

原则上,更新后应存在旧的sqlite存储。

您必须手动编写迁移代码:在更新后首次启动时,创建新商店,读取旧商店中的每条记录,并使用新格式将其保存在新商店中。