仅使用一个托管对象预填充核心数据

时间:2014-03-26 13:54:00

标签: ios objective-c core-data

我需要使用一个托管对象预先填充我的核心数据库。

目前我正在检查AppDelegate是否是应用程序运行的最短时间,然后添加对象,如下所示:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

BOOL firstTime = [defaults boolForKey:@"firstTime"];

if (firstTime) {
    [dataManager insertManagedObject:myManagedObect];

    [defaults setBool:NO forKey:@"firstTime"];
    [defaults synchronize];
}

insertManagedObject方法检查managedObject是否已存在于数据库中。

它工作正常,但我担心在未来的应用更新中,这可能会给我带来一些麻烦,主要是因为我改变了我的数据模型并添加了新的数据模型版本。

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

  

为什么不执行获取请求,看看商店是否已经存在   包含该托管对象?例如为其设置特定标识符   管理对象......

根据我的评论,您可以设置针对您的实体的获取请求,并查看商店是否已有实例。

这很容易实现。

如果需要查询特定对象,可以为实体设置属性标识符(即guid),并使用谓词查看具有特定guid的对象是否存在。

如果您分享其他一些细节,我可以给您其他建议......