我一直在找关于这个问题的帖子,但我不完全明白...... 这两者之间的区别是什么?
[context reset];
和..:
for (NSManagedObjectID *objId in objectIds) {
[context deleteObject:[context objectWithID:objId]];
}
还是两者是等同的?
谢谢你
使用 "NSManagedObjectID*objId in objectIds"{[context ... reset
将托管对象上下文放回第一次创建时的状态--在你执行任何提取、创建任何新对象等之前。如果你在内存中有任何从这个上下文中获取的托管对象,它们现在就不能使用了。如果你在内存中的管理对象是从这个上下文中获取的,那么它们现在就不能使用了。reset
不影响持久化存储文件. 之后所有的实例仍然存在,只是不在内存中。它们可以被再次获取。
使用 deleteObject
从持久化存储中删除该对象。它不再存在了。因为它不存在,所以不能再被获取。