如何判断NSManagedObject是否已保存?

问题描述:

如何判断NSManagedObject是否被保留?如何判断NSManagedObject是否已保存?

(相对于还没有木珠保存尚未或已被删除一个新的对象。)

检查其对象ID是持久

BOOL isSaved = !object.objectID.isTemporaryID; 

文档中关于isTemporaryID:

“YES如果接收器是暂时的,否则就没有。大多数的对象ID返回NO。插入到被管理对象的情况下被赋予其更换为永久性的,一旦对象被保存到持久性存储临时ID的新对象“。

+2

看来,SWIFT你必须使用'.temporaryID',而不是'.isTemporaryID' – 2015-07-22 20:26:10

+0

是的,财产是'temporaryID',但吸气设置为自定义的'isTemporaryID' - 所以Objective-C的调用它作为'[object.objectId isTemporaryID]' – kpower 2015-07-23 20:41:40

+0

但据我所知,有可能获得永久编号为尚未持久化对象,纠正我,如果我错了。这将导致不是确定性的答案:/ – 2016-05-03 09:35:13

Daij-Djan的答案只能在iOS版8.0+。对于旧版本使用:

BOOL isSaved = nil != object.objectID.persistentStore; 
+0

号我就用它降低oss – 2015-07-22 20:27:43

+0

嗯,奇怪...“在iOS 8.0及更高版本中可用”(文档)。 – kpower 2015-07-23 20:39:18

+0

文档错误我确定 – 2015-07-23 22:55:26