我只需要使用一个托管对象预填充我的核心数据库。
目前我正在检查 AppDelegate 是否是应用程序运行的第一次,然后添加对象,如下所示:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
BOOL firstTime = [defaults boolForKey"firstTime"];
if (firstTime) {
[dataManager insertManagedObject:myManagedObect];
[defaults setBool:NO forKey"firstTime"];
[defaults synchronize];
}
insertManagedObject 方法检查 managedObject 是否已经在数据库中。
它工作正常,但我担心在未来的应用程序更新中这可能会给我带来一些麻烦,主要是如果我更改我的数据模型并添加一个新的数据模型版本。
最好的方法是什么?
Best Answer-推荐答案 strong>
Why don't you execute a fetch request a see if the store already
contains that managed object? e.g setting a specific identifier for
that managed object...
根据我的评论,您可以针对您的实体设置一个获取请求,并查看商店是否已经有一个实例。
这很容易实现。
如果您需要查询特定对象,您可以为实体设置属性标识符(即 guid)并使用谓词查看具有特定 guid 的对象是否存在。
如果你分享一些其他细节,我可以给你其他建议......
关于ios - 仅使用一个托管对象预填充核心数据,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22663146/
|