私が使用してNSManagedObject
サブクラスを初期化しています:NSManagedObjectのサブクラスとsetValuesForKeysWithDictionary:
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
私も故意にそれを当然の例外をスローする必要が未定義のキーを、与えています。
だから、私が実施している:
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
キーが定義されていない場合、私は正しいキーにマップします。
の実装が使用されていますが、でもが例外をスローします。
setValuesForKeysWithDictionary:
がサブクラスの実装setValue:forUndefinedKey:
を使用できないような動作(またはバグ)はありますか?
要求されるようにコードを追加しますが、私は呼び出されません既存のメソッドを実装おりますので、私はそれがどのくらいの助けを知らない:文脈では
:
- (Company*)companyWithDictionary:(NSDictionary*)values{
Company* newCompany = (Company*)[NSEntityDescription insertNewObjectForEntityForName:@"Company" inManagedObjectContext:self];
[newCompany setValuesForKeysWithDictionary:values];
return newCompany;
}
Company
サブクラス(と呼ばれることはありません)で
:
- (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];
}
}
はい、スタックトレースに表示されます。そして、それは間違いなくNSManagedObjectの実装です。 –
私はvalueForUndefinedKey:を実装していません。私はそれを試してみるが、なぜそれがセッターを突き抜けてしまうのか分からない。 –
いくつかのコードを追加しました... –