9

मैं कोरडाटा में अपेक्षाकृत अच्छी तरह से ज्ञात हूं और इसे कई वर्षों तक कम या कोई कठिनाई के साथ उपयोग कर रहा हूं। मेरे जीवन के लिए, मैं यह नहीं समझ सकता किinsertNewObjectForEntityForName: inManagedObjectContext: NSNumber बग लौटा रहा है?

insertNewObjectForEntityForName:inManagedObjectContext: 

अचानक एनएसएनंबर के किसी प्रकार का अजीब उदाहरण लौट रहा है। GDB कहते लौटे वस्तु NSManagedObject की सही कस्टम उपवर्ग की है, लेकिन जब मैं NSManagedObject खुद का एक विवरण मुद्रित करने के लिए जाओ, मैं निम्नलिखित त्रुटि मिलती है:

*** -[NSCFNumber objectID]: unrecognized selector sent to instance 0x3f26f50 

क्या भी अजनबी है, यह है कि मैं कर सकती हूं setValue का उपयोग करके कुछ रिश्तों और विशेषताओं को सेट करने के लिए: forKey: और सब अच्छा है।

*** -[NSCFNumber entity]: unrecognized selector sent to instance 0x3f26f50 

मैं स्वच्छ से सब कुछ कोशिश की है सभी लक्ष्यों दोनों मैक और iPhone को पुन: प्रारंभ, यहां तक ​​कि मॉडल का संपादन इतना है कि प्रश्न में संबंध है, लेकिन जब मैं एक विशेष संबंध स्थापित करने के लिए प्रयास करते हैं, मैं इस त्रुटि मिलती है कई लोगों के बजाय एक-एक। कोई फर्क नहीं पड़ता कि मैं क्या करता हूं, वही समस्या प्रकट होती है। क्या किसी ने कभी ऐसा कुछ देखा है?

+2

कृपया के साथ भिड़ना होगा, प्रदान अधिक कोड – Skie

+0

क्या तुमने कभी अंत इस पता लगाना था? – makdad

उत्तर

0

objectId और इकाई चयनकर्ताओं NSManagedObject पर हैं, नहीं NSCFNumber (या NSNumber)। मैं उम्मीद नहीं करता कि आप इन चयनकर्ताओं में से किसी एक को NSNumber पर कॉल करें, जो इकाई पर एक संपत्ति होनी चाहिए, न कि इकाई स्वयं।

CoreData में हर इकाई NSManagedObject का विस्तार करना होगा, ताकि आपके NSCFNumber वस्तु एक इकाई नहीं है।

1

मैं एक ही समस्या में भाग गया और पूरे दिन अपने बालों को खींचने के बाद, मैंने अपनी समस्या हल की।

मुझे विश्वास है कि समस्या दूषित विशेषता/रिश्ते से संबंधित है, और एनएससीएफ नम्बर वास्तव में उस विशेषता/रिश्ते के लिए ऑब्जेक्ट आईडी की तलाश में है। मेरे मामले में, मैं valueForKey का उपयोग कर सकता हूं: सभी विशेषताओं/रिश्तों को खोजने के लिए, हालांकि एक रिश्ते जिसे मैंने "फाइल" कहा था, भ्रष्ट प्रतीत होता था।

मुझे अंततः एहसास हुआ कि मैंने एक बूलियन "आईएसफ़ाइल" विधि शामिल करने के लिए एनएसओब्जेक्ट को बढ़ाया है, और किसी भी तरह यह कोरडाटा में हस्तक्षेप कर रहा था और इसे या तो भ्रष्ट वस्तु को वापस करने का कारण बन गया था, या उस वस्तु के साथ ठीक से निपटने में सक्षम नहीं था । मेरा अनुमान है कि कोरडाटा को गतिशील रूप से "isXXX" विधियां बनाना चाहिए।

मैं या तो isFile विधि को हटाकर या मेरी संपत्ति का नाम बदलकर समस्या को ठीक कर सकता हूं।

14

मेरे पास एक ही समस्या थी: मैंने अपनी डेटाबेस इकाई की मूल इकाई में "isDatabase" (एक बूल लौटाया) नामक एक विधि जोड़ा था, जिसका नाम "डेटाबेस" था। "IsDfiteDatabase" को "isDatabase" का नाम बदलना समस्या को हल करता है। तो माता-पिता की संस्थाओं को भी देखें!

+0

आपने मुझे निराशा और गूगलिंग के संभावित ** घंटे ** बचाया। अगर मैं इस जवाब को एक हजार बार वोट दे सकता हूं तो मैं चाहता हूं। धन्यवाद महोदय! – Russ

+0

ओएमजी! एक ही समस्या थी, एक वर्ग में भी "is " का उपयोग नहीं कर सकता! कुछ और करने के लिए मेरी विधि का नाम बदल गया! बहुत बहुत धन्यवाद: डी! – KBog

2

मैंने NSManagedObject सबक्लास पर एक संपत्ति परिभाषित की जो वर्ग पर परिभाषित रिश्ते के नाम से टकरा गया।

यहाँ यहाँ कोड MyManagedObjectSubclass के लिए XCode द्वारा उत्पादित है मेरी MyManagedObjectSubclass+Custom.h

@property (readonly, nonatomic) BOOL isSeason;

में कोड है।ज

@property (nonatomic, retain) SomeOtherEntityToOneRelationship *season;

ध्यान दें कि isSeason, KVC द्वारा, मौसम नाम

संबंधित मुद्दे