通过iTuneS商店将数据集附加到核心数据执行更新中

时间:2010-05-10 03:28:19

标签: iphone core-data

这一个也由我自己解决。 很好的答案是, 新版App:更改sqlite文件名。检查文件存在,获取旧版本的应用程序sqlite名称然后删除,并添加到该文件夹​​中。 这是最好的答案。

*新的有效答案

STEP 1:  select .xcdatamodel file
STEP 2:  Xcode -> Design -> Data Model -> Add Model Version
STEP 3:  Manipulate new changes

有关迁移或重新组织数据模型结构的更多详细信息,请访问Apple< here>

虽然在阅读Apple的文档之前我并不确定如何添加模型版本,但我的旧方法仍然有效。

旧解决自我回答

Apple提供的'Reciepe'示例,如果文件已经存在,则不会替换该文件。 但是,如果您的代码需要更新并删除旧的.SQL文件,则需要显式条件来检查更新所需的旧文件sqlite名称删除功能。 基本顺序是,

CHECK 1: check if old file exist.
CHECK 2: if it does, remove it.
CHECK 3: then copy new one.
CHECK 4: if the old file don't exist,
CHECK 5: (if the new file don't exist),
CHECK 6: copy new file into that folder.
CHECK 7: if new file exist do nothing.

解决。

原始发布的问题

所以我完成了我的代码工作。 这是第一次通过iTuneStore发布应用程序。 读取Core Data(.sqlite)文件的当前状态已经预取(已经有像apple的'Reciepie'程序这样的信息)。

假设我已成功通过apple store发布,并决定将我的应用程序更新为现有用户。

假设我有sqlite内容,但它包含的信息比以前相同结构的SQLite文件更多。

问题1.每次对现有用户进行更新时,是否会删除以前的用户并移动新更新的应用程序?

问题2.如果不是,那么我如何追加现有的sql值?

1 个答案:

答案 0 :(得分:0)

如果您不更改基础数据模型,则答案为:

1)从v1.0更新到v1.1不会删除已经由Core Data存储和管理的先前内容。

2)只需使用主捆绑包检查应用程序的版本,如果检索的版本需要插入其他数据,请执行插入操作。您可以在

中进行检查和插入
- (void)applicationDidFinishLaunching:(UIApplication *)application;