17

से गुण नहीं मिल सकता है मैं ब्रेल नामित उदाहरण के लिए, इकाई एक और इकाई बी (एक तरफा) के बीच एक-से-एक रिश्ता है। मेरे पास NSAtomicStore (माइस्टोर) और NSAtomicStoreCacheNode (MyCacheNode) के उप-वर्ग हैं। MyStore की load: विधि में मैं संस्थाओं ए और बी (एनोड और bNode) के लिए MyCacheNode का उदाहरण बना है और इसी हर एक के लिए propertyCache शब्दकोश आवंटित। एनोड के लिए प्रॉपर्टी कैश में @"bRel" कुंजी के लिए bNode शामिल है।NSManagedObject NSAtomicStoreCacheNode

aManagedObject सामान्य रूप से बनाया है और सभी गुण मान्य है। लेकिन जब AManagedObject aManagedObject.bRel.someAttribute के माध्यम से bManagedObject तक पहुंचता है, bManagedObject गलती बनी हुई है। bManagedObject awakeFromInsert या awakeFromFetch प्राप्त नहीं करता है। बीएनओडी और बीमैनेज ऑब्जेक्ट managedObjectID का एक ही उदाहरण साझा करते हैं। BModeaged ऑब्जेक्ट कुछ एट्रिब्यूट तक पहुंचने पर बीएनओडी जीवित है। जब AManagedObject इसके गुणों तक पहुंचता है, तो यह MyCacheNode के valueForKey: के माध्यम से जाता है। जब bManagedObject करता है, हम वहां नहीं जाते हैं।

bManagedObject सिर्फ कभी नहीं सब पर सक्रिय करता है।

किसी को लगता है कि कर सकते हैं कि मैं क्या इस स्थिति में जांच होनी चाहिए?

+0

कस्टम एनएसएटॉमिकस्टोर का उपयोग करते समय मुझे संबंधों को जोड़ने में समस्याएं आ रही हैं, क्या आपको अपनी समस्या के साथ कहीं भी मिला? – Vamos

+0

क्या यह वही व्यवहार करता है यदि आप mutable ValueForKey का उपयोग करके रिश्ते तक पहुंचते हैं? – quellish

उत्तर

1

हाँ। समस्या यह हो सकती है कि आपके पास अपने प्रबंधित ऑब्जेक्ट पर एआरएल की अग्रेषित घोषणा हो। इसे AManagedObject.h फ़ाइल पर आयात करने का प्रयास करें। इस तरह, आप इसके गुणों तक पहुंचने में सक्षम होना चाहिए।

मुझे पता है कि यह कैसे जाता है :)

1

वर्तमान परिप्रेक्ष्य मुझे लगता है कि मैं सिर्फ संश्लेषित संपत्तियों के लिए willAccessValueForKey:/didAccessValueForKey: फोन नहीं किया गया है से, और उस दुकान को अनुकूलित करने के लिए अप्रासंगिक था। बी ए, AFAIR की संश्लेषित संपत्ति थी।