मैं का उपयोग कर एक NSManagedObject
उपवर्ग आरंभ कर रहा हूँ:NSManagedObject उपवर्गों और setValuesForKeysWithDictionary:
- (void)setValuesForKeysWithDictionary:(NSDictionary *)keyedValues
मैं भी जानबूझकर यह अनिर्धारित कुंजी है, जो निश्चित रूप की एक अपवाद फेंक चाहिए दे रहा हूँ।
तो, मैं लागू कर दिया है: एक महत्वपूर्ण अपरिभाषित है
- (void)setValue:(id)value forUndefinedKey:(NSString *)key
हैं, मैं यह सही कुंजी के लिए नक्शे।
लेकिन, मेरा कार्यान्वयन कभी नहीं बुलाया जाता है, बजाय NSManagedObject
के कार्यान्वयन प्रयोग किया जाता है, जो बारी में अब भी एक अपवाद फेंकता है।
क्या कोई व्यवहार (या बग) है जो 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 के कार्यान्वयन भी है। –
मैंने मूल्य लागू नहीं किया है ForUndefinedKey:। मैं कोशिश करूँगा, लेकिन मुझे नहीं लगता कि वह सेटर के माध्यम से क्यों होगा। –
कुछ कोड जोड़ा गया ... –