sto inizializzazione di una sottoclasse NSManagedObject
utilizzando:sottoclassi NSManagedObject e setValuesForKeysWithDictionary:
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
Sono anche consapevolmente dandogli la chiavi indefiniti, che naturalmente dovrebbe un'eccezione.
Così, ho implementato:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
Se un tasto non è definito, traccio alla chiave corretta.
Tuttavia, la mia implementazione non viene mai chiamata, viene invece utilizzata l'implementazione NSManagedObject
, che a sua volta rappresenta ancora un'eccezione..
Esiste un comportamento (o un bug) che impedisce a setValuesForKeysWithDictionary:
di utilizzare un'implementazione di sottoclasse NSManagedObject
di setValue:forUndefinedKey:
?
Aggiunta di codice come richiesto, ma dal momento che io sono solo l'attuazione di un metodo esistente, che non venga chiamato, non so quanto aiuto sarà:
Nel contesto:
- (Company*)companyWithDictionary:(NSDictionary*)values{
Company* newCompany = (Company*)[NSEntityDescription insertNewObjectForEntityForName:@"Company" inManagedObjectContext:self];
[newCompany setValuesForKeysWithDictionary:values];
return newCompany;
}
Nel Company
sottoclasse (mai chiamato):
- (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 vedo nella traccia dello stack. Ed è anche l'implementazione di NSManagedObject. –
Non ho implementato valueForUndefinedKey :. Ci proverò, ma non vedo perché ciò sarebbe dovuto al setter di Whack. –
Aggiunto un po 'di codice ... –