我有一些代碼循環訪問NSManagedObjects數組,並在它找到存儲在實例變量中的某個記錄時停止。我可以設法查看它們是否是相同記錄(不是等同記錄,具體記錄)的唯一方法是通過比較對象ID的URIR表示。這肯定不是做這件事的最好方式。我在做:比較兩個NSManagedObjects
if ([[[obj1 objectID] URIRepresentation] isEqualTo: [[_obj2 objectID] URIRepresentation]]) {
NSLog(@"Match");
}
即使當我NSLog objectIDs,並看到他們實際上是完全一樣的,下面的代碼永遠不會匹配。
if ([[obj1 objectID] isEqualTo: [_obj2 objectID]]) {
NSLog(@"Match");
}
在這種情況下,調用isEqualTo:與[obj1 objectID] == [obj2 objectID]相同,因爲NSManagedObjectID不會覆蓋isEqual :.您將不得不從兩次調用中接收完全相同的對象,以便返回YES。 – ughoavgfhw 2011-01-19 06:47:42