Tengo un código que recorre una matriz de NSManagedObjects y se detiene cuando encuentra un determinado registro que está almacenado en una variable de instancia. La única forma en que puedo ver si son el mismo registro (no un registro equivalente, el registro específico) es comparando las representaciones URIR de los objectID. Esta seguramente no puede ser la mejor manera de hacerlo. Que estoy haciendo:Comparación de dos objetos NSManagedObjects
if ([[[obj1 objectID] URIRepresentation] isEqualTo: [[_obj2 objectID] URIRepresentation]]) {
NSLog(@"Match");
}
El siguiente código no coincide, incluso cuando NSLog los ObjectID y veo que en realidad son exactamente lo mismo.
if ([[obj1 objectID] isEqualTo: [_obj2 objectID]]) {
NSLog(@"Match");
}
En esta situación, llamar isEqualTo: es lo mismo que [obj1 objectID] == [obj2 objectID] porque NSManagedObjectID no anula isEqual :. Debería recibir exactamente el mismo objeto de ambas llamadas para que devuelva SÍ. – ughoavgfhw