2011-10-20 10 views
7

से सभी पर्यवेक्षकों को हटा सकता हूं, मैं मुख्य मूल्य का उपयोग कर रहा हूं। मेरे पास object_1 (NSManagedObject) और कुछ अन्य ऑब्जेक्ट-पर्यवेक्षक हैं। जब मैं प्रबंधित ऑब्जेक्ट संदर्भ से object_1 को हटाता हूं तो मेरा प्रोग्राम क्रैश हो जाता है।केवीओ: क्या मैं ठोस ऑब्जेक्ट

कोरडाटा: त्रुटि: गंभीर एप्लिकेशन त्रुटि। कोर डेटा परिवर्तन प्रसंस्करण के दौरान अपवाद पकड़ा गया था। यह आमतौर पर NSManagedObjectContextObjectsDidChangeNotification के पर्यवेक्षक के भीतर एक बग होता है।

क्या मैं ऑब्जेक्ट_1 के सभी पर्यवेक्षकों को हटाने के लिए डेलोक विधि (या कहीं और) में कुछ डाल सकता हूं? या एकमात्र उचित निर्णय सूचना ऑब्जेक्ट संदर्भ से ऑब्जेक्ट_1 को हटाने के बारे में अधिसूचना भेजना है और अन्य ऑब्जेक्ट्स (ऑब्जेक्ट_1 के पर्यवेक्षकों से खुद को हटाने के लिए) द्वारा इस अधिसूचना को सुनना है?

उत्तर

7

आपको यह सुनिश्चित करना होगा कि आपके ऑब्जेक्ट को हटाए जाने से पहले आपके पर्यवेक्षकों को हटा दिया जाए। यह कुंजी मूल्य पर्यवेक्षक का नकारात्मक पक्ष है।

जैसा कि आप सुझाव देते हैं, ऐसा करने का एक तरीका आपके डेलोक विधि के भीतर से निकाला जा रहा है। जाहिर है आप नहीं जानते कि आपके ऑब्जेक्ट पर पर्यवेक्षक कौन हैं लेकिन उन्हें अभी भी सूचित करने की आवश्यकता होगी।

मैं आपको बताऊंगा कि आपको क्या करना है, लेकिन शायद bj-homer के प्रश्न When should I remove observers? Error about deallocating objects before removing observers में जवाब देखें।

यदि यह वही है जो आप के बाद हैं तो बस ऊपर वोट दें। यदि नहीं, तो यहां वोट दें। उम्मीद है कि यह वैसे भी मदद करता है।

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