¿Por qué mi NSManagedObject no es compatible con KVC?

Estoy intentando usar KVC para recuperar el valor de una propiedad de una entidad NSManagedObject personalizada creada con datos de Core. Obtengo una UnknownKeyException cuando trato de acceder a una propiedad a unos pocos niveles de profundidad, y por mi vida no puedo entender por qué...

La entidad raíz se llama "Catch". tiene una serie de propiedades: peso, longitud, etc. También tiene una relación de uno con otra entidad llamada "Especie". Species tiene una propiedad de nombre definida como NSString.

De modo que:

//this will output the species name (i.e. "Brook Trout")
NSLog(@"Catch.species.name = %@", catch.species.name);

//this will throw a NSUnknownKeyException
NSLog(@"Catch.species.name = %@", [catch valueForKey:@"species.name"]);

//but this works...!?
Species *species = (Species*)[catch valueForKey:@"species"];
NSLog(@"Species.name = %@", species.name);

Los detalles específicos de la excepción son:

* Finalización de la aplicación debido a la excepción no detectada 'NSUnknownKeyException', razón: '[ valueForUndefinedKey:]: la entidad Catch no cumple con la codificación del valor clave para la clave "species.name".'

¿Alguien que entienda esto mejor que yo sabe lo que está pasando?

Gracias de antemano!

preguntado el 12 de junio de 12 a las 19:06

1 Respuestas

Intenta usar -valueForKeyPath: en lugar de -valueForKey: para una cadena de claves, es decir, "species.name" en este caso.

Respondido el 12 de junio de 12 a las 19:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.