【发布时间】:2011-06-11 13:12:19
【问题描述】:
我有一些代码循环遍历 NSManagedObjects 数组,并在找到存储在实例变量中的特定记录时停止。我可以设法查看它们是否是相同记录(不是等效记录,特定记录)的唯一方法是比较 objectID 的 URIRepresentations。这肯定不是最好的方法。我在做:
if ([[[obj1 objectID] URIRepresentation] isEqualTo: [[_obj2 objectID] URIRepresentation]]) {
NSLog(@"Match");
}
即使我 NSLog 对象 ID 并看到它们实际上完全相同,以下代码也永远不会匹配。
if ([[obj1 objectID] isEqualTo: [_obj2 objectID]]) {
NSLog(@"Match");
}
【问题讨论】:
-
在这种情况下,调用 isEqualTo: 与 [obj1 objectID] == [obj2 objectID] 相同,因为 NSManagedObjectID 不会覆盖 isEqual:。您必须从两个调用中接收完全相同的对象才能返回 YES。
标签: objective-c core-data nsmanagedobject