मेरे पास खुश वस्तुओं के साथ NSMutableArray
एक सरणी है। जब भी मैं सभी वस्तुओं की सरणी को साफ़ करने और इसे दोबारा बनाने की कोशिश करता हूं, तो ये वस्तुएं मुझे (लीक) चालू कर देती हैं।एनएसएमयूटेबलएरे विनाश
यह इतना
self.list = [NSMutableArray array];
तरह init समारोह में आवंटित है विभिन्न तरीकों मैं इसे बाहर खाली करने के लिए इस्तेमाल किया है में शामिल हैं:
self.list = nil;
self.list = [NSMutableArray array];
और
[self.eventList removeAllObjects];
स्पष्ट रूप से आवंटन और रिहा सरणी या तो काम नहीं करता है। रिसाव केवल तब होता है जब मैं सूची को रीसेट करने का प्रयास करता हूं।
क्या मुझे रीसेट करने पर एक कदम याद आ रहा है या यह एक अलग समस्या है?
@property (nonatomic, retain) एनएसएमयूटेबलएरे * सूची; मेरे पास एक संश्लेषण है, लेकिन कोर डंप केवल तब होता है जब मैं ऑब्जेक्ट को मैन्युअल रूप से रिलीज़ करने का प्रयास करता हूं। मेरा मतलब है कि मुझे चालू करने का मतलब है लीकिंग ऑब्जेक्ट्स (मुझे लगता है) – SageAMDP
आप कैसे जानते हैं कि वे लीक हो रहे हैं? क्या आप उपकरण \ लीक की जांच कर रहे हैं? यदि आपको बुरी पहुंच मिल रही है, तो इसका मतलब है कि आप कुछ ऐसा जारी कर रहे हैं जो पहले ही अस्वीकृत है। लीक को इस अर्थ में खोजना कठिन होता है कि आपको उन्हें पकड़ने के लिए एक उपकरण का उपयोग करने की आवश्यकता होती है (या बस अपनी याददाश्त बढ़ती है)। – Elfred
इसलिए, यदि आप [सूची addObject: [[MyObj alloc] init] कर रहे हैं; और बाद में [सूची हटाएंऑल ऑब्जेक्ट्स]; आप शायद लीक कर रहे हैं। समाधान एक क्लास विधि प्रदान करना होगा जो एक ऑटोरेलेज्ड ऑब्जेक्ट देता है। – Elfred