¿Por qué mi NSManagedObject no es compatible con KVC?
Frecuentes
Visto 1,282 veces
2
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!
1 Respuestas
8
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 objective-c ios core-data ios5 key-value-coding or haz tu propia pregunta.