向核心数据添加新实体并填充一些值

Posted

技术标签:

【中文标题】向核心数据添加新实体并填充一些值【英文标题】:Adding a new entity to core data and populating some values 【发布时间】:2012-11-18 22:06:11 【问题描述】:

我正在下一个版本的应用程序中更新我的核心数据模型。我按照here 的说明为“部门”添加了一个新实体。

我想为新用户和更新到最新版本的用户添加一些示例部门。到目前为止,我的方法是在 [NSUserDefaults standardDefaults] 中存储一个 'HasLaunchedOnce' 布尔值,如果缺少它会添加一些参考数据并将其自身设置为 YES 以供下次启动。

我应该添加一个类似的标志 (hasLaunchedV1.1Once) 来添加我的部门吗?我还可以采取哪些其他方法?我的目标是让未来的版本尽可能简单。我宁愿简单地检查是否存在任何部门,但是如果用户手动删除了所有部门,这当然会触发。

【问题讨论】:

好吧,如果您创建了一个版本化的核心数据模型,那么您可以将相同的版本保存在 userdefaults 中,这样您就可以知道用户使用的是什么版本的模型。 【参考方案1】:

您的方法原则上是有效的。

只要考虑到NSManagedObjectModel 类有一个实例方法versionIdentifiers。您也可以使用它来了解最新版本是什么。

【讨论】:

以上是关于向核心数据添加新实体并填充一些值的主要内容,如果未能解决你的问题,请参考以下文章

在数组之间传输数据并丢失一些值

SQL:向数据库表添加新的主键列

核心数据迁移机制是不是会处理预填充实体上的新数据?

核心数据:从旧数据库导入值

核心数据模型迁移步骤

使用 RestKIt 在核心数据实体中映射 json 对象