是否可以识别(在运行时)NSManagedObjects
已插入NSManagedObjectContext
(即inserted == YES
)但从未save
d到上下文的商店,远。
我首先认为他们的objectID
可能仍然是nil
但事实证明并非如此。
更新我进行了一项快速实验,看看检查temporaryID
(请参阅accepted answer)是否也适用于嵌套的MOC。这表明没有:保存子MOC只向上推一级(即向父MOC而不向持续存储,这是向上),因此新插入的MO的对象ID仍然是临时的。在这种情况下,确定MO是否在子MOC中是新的并且从未被保存(甚至不是父MOC)的一种方法显然是检查[child objectRegisteredForID: object.objectID] && ![parent objectRegisteredForID: object.objectID]
。
答案 0 :(得分:2)
您可以使用temporaryID
的{{1}} property:
如果接收器是临时的,则为YES,否则为NO。大多数对象ID返回 没有。插入到托管对象上下文中的新对象将分配一个 临时ID,一旦被对象替换为永久ID 被保存到持久性商店。
使用示例:
NSManagedObjectID