已插入但尚未保存的NSManagedObjects?

时间:2015-01-18 15:48:42

标签: ios core-data ios8 nsmanagedobject nsmanagedobjectcontext

是否可以识别(在运行时)NSManagedObjects已插入NSManagedObjectContext(即inserted == YES)但从未saved到上下文的商店,远。

我首先认为他们的objectID可能仍然是nil但事实证明并非如此。

更新我进行了一项快速实验,看看检查temporaryID(请参阅accepted answer)是否也适用于嵌套的MOC。这表明没有:保存子MOC只向上推一级(即向父MOC而不向持续存储,这是向上),因此新插入的MO的对象ID仍然是临时的。在这种情况下,确定MO是否在子MOC中是新的并且从未被保存(甚至不是父MOC)的一种方法显然是检查[child objectRegisteredForID: object.objectID] && ![parent objectRegisteredForID: object.objectID]

1 个答案:

答案 0 :(得分:2)

您可以使用temporaryID的{​​{1}} property

  

如果接收器是临时的,则为YES,否则为NO。大多数对象ID返回   没有。插入到托管对象上下文中的新对象将分配一个   临时ID,一旦被对象替换为永久ID   被保存到持久性商店。

使用示例:

NSManagedObjectID