![]() |
1
4
您不应该在托管对象上下文之外初始化核心数据对象——这根本没有意义。有一些
如果没有上下文(因此是模型和存储协调器)备份,那么不能保存对象、操作对象或真正执行核心数据所提供的任何有用的操作,这对您有好处吗?
你应该只使用
如果您在每次启动时都运行代码,我建议您使用一个核心数据查询来返回一些现有的Person对象集,并且只添加存储中不存在的对象(使用初始化方法)。如果对象已经存在,请修改它,而不是创建新的对象。 诀窍是让这样的东西正常运行。你不应该为iPhone通讯簿中的每个联系人都做核心数据提取;像这样的小提取非常昂贵。理论上,你可以得到两个nset——一个是person对象,另一个是contact——然后用一些唯一的键(比如联系人名字和姓氏的散列)来比较它们。我把优化留给你。
关键是:
不要使用
|
![]() |
2
0
是的,向Person类添加initWithWrapper方法是最简单的。应该是这样的:
唯一的缺点是,这个方法必须知道它应该将对象插入到哪个ManagedObjectContext中,所以您必须找到一种方法来提供它。 也就是说,我一直在使用这种模式。 |
![]() |
Noah H · 如何通过终端或Swift禁用三指轻拍手势? 7 年前 |
![]() |
Dmitry Serov · 货币数字格式-数字为整数时省略分数部分 7 年前 |
![]() |
Duny · ObjC日期始终返回2017年12月25日 7 年前 |
![]() |
Jan Kaiser · NSButton不调用其操作 7 年前 |