如何判断NSManagedObject是否已保存?
检查其对象ID是持久
BOOL isSaved = !object.objectID.isTemporaryID;
文档中关于isTemporaryID:
“YES如果接收器是暂时的,否则就没有。大多数的对象ID返回NO。插入到被管理对象的情况下被赋予其更换为永久性的,一旦对象被保存到持久性存储临时ID的新对象“。
Daij-Djan的答案只能在iOS版8.0+。对于旧版本使用:
BOOL isSaved = nil != object.objectID.persistentStore;
号我就用它降低oss – 2015-07-22 20:27:43
嗯,奇怪...“在iOS 8.0及更高版本中可用”(文档)。 – kpower 2015-07-23 20:39:18
文档错误我确定 – 2015-07-23 22:55:26
看来,SWIFT你必须使用'.temporaryID',而不是'.isTemporaryID' – 2015-07-22 20:26:10
是的,财产是'temporaryID',但吸气设置为自定义的'isTemporaryID' - 所以Objective-C的调用它作为'[object.objectId isTemporaryID]' – kpower 2015-07-23 20:41:40
但据我所知,有可能获得永久编号为尚未持久化对象,纠正我,如果我错了。这将导致不是确定性的答案:/ – 2016-05-03 09:35:13