내가 사용 NSManagedObject
서브 클래스를 초기화하고 있습니다 :NSManagedObject 하위 클래스와 setValuesForKeysWithDictionary :
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
은 또한 고의로 그것을 물론 의 예외를 throw해야 정의되지 않은 키를 제공하고 있습니다.
그래서,이 구현 : 키가 정의되지
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
경우에, 나는 정확한 키에 매핑.
의 구현이 사용 된 적이 있는데, 여전히이 예외를 throw합니다.
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 :를 구현하지 않았습니다. 나는 그것을 시도 할 것이다. 그러나 나는 그것이 세터를 통해 왜 우 of 거리는지를 알지 못한다. –
몇 가지 코드를 추가했습니다 ... –