estoy inicializar una subclase NSManagedObject
usando:subclases NSManagedObject y setValuesForKeysWithDictionary:
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
estoy también con conocimiento dándole las llaves no definidos, que por supuesto debe una excepción.
Por lo tanto, he implementado:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
Si una clave no está definido, que asignarlo a la tecla correcta.
Sin embargo, mi implementación nunca se llama, en su lugar se usa la implementación de NSManagedObject
, que a su vez aún arroja una excepción.
¿Hay algún comportamiento (o error) que impida que setValuesForKeysWithDictionary:
use la implementación de la subclase NSManagedObject
de setValue:forUndefinedKey:
?
Adición de código a lo solicitado, pero ya que sólo estoy poniendo en práctica un método existente, que no se consiga llamar, no sé cuánta ayuda será:
En el contexto:
- (Company*)companyWithDictionary:(NSDictionary*)values{
Company* newCompany = (Company*)[NSEntityDescription insertNewObjectForEntityForName:@"Company" inManagedObjectContext:self];
[newCompany setValuesForKeysWithDictionary:values];
return newCompany;
}
En el Company
subclase (nunca llamada):
- (void)setValue:(id)value forUndefinedKey:(NSString *)key{
if([key isEqualToString:idKey]){
[self setValue:value forKey:@"uniqueID"];
}else if([key isEqualToString:descriptionKey]){
[self setValue:value forKey:@"descriptionText"];
}else if([key isEqualToString:timeUpdatedKey]){
[self setValue:value forKey:@"dateUpdated"];
}else{
[super setValue:value forUndefinedKey:key];
}
}
Sí, lo veo en el rastro de la pila. Y también es definitivamente la implementación de NSManagedObject. –
No he implementado valueForUndefinedKey :. Intentaré eso, pero no veo por qué eso a través del setter fuera de control. –
Agregué un código ... –