-existingObjectWithID:error:和-objectWithID:?之间有什么区别?

don*_*ile 3 iphone core-data

-existingObjectWithID:error:和之间有什么区别–objectWithID:?

Bar*_*ark 6

我相信existingObjectWithID:error:只有在已经在接收上下文中注册的情况下才返回实例.objectWithID:可能会为尚未注册(拉入)接收上下文的对象返回错误.

  • 文档实际上表明,如果对象不在当前上下文中,`existingObjectWithID:error:` 将查询持久存储。只有当它找不到对象时才会出错。这是获取现有对象的最明确的方法,而 `objectWithID:` 根本不关心该对象是否存在,而 `objectRegisteredWithID:` 则要求对象已经加载到上下文中。 (2认同)

Mar*_*rra 5

objectWithID:假定对象存在,因此如果您给它一个错误的ID,当您尝试访问返回实体上的属性时,它将引发异常.此外,此方法始终返回实体.

existingObjectWithID:error:将返回一个对象(如果它存在),nil如果它不存在.如果有错误,它将填充错误指针.