如何确定 NSManagedObject 是不是是永久的?

Posted

技术标签:

【中文标题】如何确定 NSManagedObject 是不是是永久的?【英文标题】:How to determine if NSManagedObjectID is permament?如何确定 NSManagedObject 是否是永久的? 【发布时间】:2013-02-01 15:16:11 【问题描述】:

我想确保我正在使用的 NSManagedObject 具有永久的 NSManagedObjectID。我知道它只在 [NSManagedObjectContext save:] 或 [NSManagedObjectContext gainPermanentIDsForObjects:error:] 上永久保存。但是,在我保存上下文以获取永久 ID 之前,有没有办法确定对象是否具有永久 ID?这样我就不会不必要地保存商店。

【问题讨论】:

【参考方案1】:

NSManagedObjectID有一个isTemporaryID方法表示对象ID是否是临时的,可以查看

BOOL isTemporary = [[myObject objectID] isTemporaryID];

但是,我只会为有问题的对象调用 obtainPermanentIDsForObjects,因为我假设如果对象 ID 已经是永久的,这不会导致额外的开销。

【讨论】:

以上是关于如何确定 NSManagedObject 是不是是永久的?的主要内容,如果未能解决你的问题,请参考以下文章

isEqual of NSManagedObject - 它如何确定相等性?

无法实例化 NSManagedObject 的子类

如何观察 NSManagedObject 是不是从 managedObjectContext 中移除

如何判断我的 NSManagedObject 是不是驻留在只读 NSPersistentStore 中?

如何在 swift 中将子类 NSManagedObject 分配给 var(而不是常量)

如何在 UILocalNotification.userInfo 中设置 NSManagedObject 信息?