Core data 如何比较核心数据中的实体标识

Core data 如何比较核心数据中的实体标识,core-data,Core Data,在同一上下文中比较两个核心数据实体的身份的首选方法是什么 只要我确定它们都在同一个上下文中,就可以使用对象标识并执行EntityOne==EntityTwo?也就是说,我是否保证对于每个核心数据实体,每个ManagedObjectContext最多存在一个Cocoa对象表示 如果不是,首选的方式是什么?在我的模型中,每个核心数据实体都有一个UUID属性,我确信其中一个比较安全(但也比较慢)。这里的最佳实践是什么(对于后代来说,如果一个人的模型没有UUID怎么办?) 跨上下文的比较如何[Entit

在同一上下文中比较两个核心数据实体的身份的首选方法是什么

只要我确定它们都在同一个上下文中,就可以使用对象标识并执行
EntityOne==EntityTwo
?也就是说,我是否保证对于每个核心数据实体,每个ManagedObjectContext最多存在一个Cocoa对象表示

如果不是,首选的方式是什么?在我的模型中,每个核心数据实体都有一个UUID属性,我确信其中一个比较安全(但也比较慢)。这里的最佳实践是什么(对于后代来说,如果一个人的模型没有UUID怎么办?)


跨上下文的比较如何<代码>[EntityOne InText:moc]==[entityTwo InText:moc]或类似的,或者有更快/更好/更优雅的方法吗?

如果您想知道两个托管对象是否代表相同的底层实例,正确的方法是使用
isEqual:
比较它们的
objectID
属性


如果这两个对象是从同一上下文中获取的,那么它们实际上是同一个对象,因为核心数据不会在同一上下文中为同一实例创建多个对象。在这种严格限制的情况下,使用
==
应该可以。在任何其他情况下使用
==
都会产生错误的结果。

您是指实体,如
NSEntityDescription
的实例中的实体吗?不,我指的是两个核心数据“对象”。数据库中同一表中的两行(假定为SQLite存储)。或者,视情况而定,是同一行。这就是我想要测试的。我想汤姆已经回答了这个问题,但是如果你有什么要补充的,我很乐意读它!