如何判断NSManagedObject是否持久存在?
(与尚未保存或已被删除的新对象相反。)
答案 0 :(得分:26)
检查其对象ID是否持久
BOOL isSaved = !object.objectID.isTemporaryID;
有关isTemporaryID的文档:
"如果接收者是临时的,则为是,否则为否。大多数对象ID返回NO。插入到托管对象上下文中的新对象将被分配一个临时ID,一旦将对象保存到持久性存储中,该ID将替换为永久ID。"
答案 1 :(得分:4)
Daij-Djan的回答仅适用于iOS 8.0+。对于旧版本,请使用:
BOOL isSaved = nil != object.objectID.persistentStore;