मैं [myarray removeallobjects] के साथ एक NSMutableArray खाली करने की कोशिश कर रहा हूं; लेकिन मुझे exc_bad_access त्रुटि मिल रही है। क्या यह सरणी खाली करने का सही तरीका है? मैंने इसे शून्य पर सेट करने की कोशिश की लेकिन यह काम नहीं कर रहा है। वास्तव में मैं जो कर रहा हूं वह डेटा के साथ सरणी भर रहा है और उपयोगकर्ता के पास डेटा को "रीफ्रेश" करने का विकल्प है और मैं ताज़ा डेटा दर्ज करने से पहले सरणी को खाली करना चाहता हूं। मैं किसी भी कोड को पोस्ट नहीं कर सकता क्योंकि यह बहुत बड़ा है।ठीक से कैसे खाली करें NSMutableArray
उत्तर
-[NSMutableArray removeAllObjects]
NSMutableArray
खाली करने का सही तरीका है। आपको सबसे अधिक दुर्घटना हो रही है क्योंकि आप अभी भी अपने यूआई में कहीं भी हटाए गए ऑब्जेक्ट्स का उपयोग कर रहे हैं।
या ऑब्जेक्ट को जोड़ने के बाद ऑब्जेक्ट को ओवर-रिलीज़ किया गया था। –
आपको कोई दुर्घटना हो रही है क्योंकि आपकी सरणी स्मृति में अब मौजूद नहीं है।
मैं शर्त लगा सकता है क्योंकि आप इसे बनाए रखने के लिए भूल गया (या बहुत जल्दी इसे जारी) अपने alloc
+ init
के बाद
आप शायद [NSMutableArray array]
या arrayWithObjects:
या उन वेरिएंट में से कुछ, या कहा जाता autorelease
का उपयोग कर इसे बनाया है, जबकि अगर यह एक इंस्टेंस वैरिएबल है जिसे आपको तब तक बनाए रखना चाहिए जब तक ओबेटेट को हटाया न जाए।
ध्यान दें कि स्मृति एमजीएमटी आईओएस विकास का एक प्रमुख हिस्सा है। आगे बढ़ने से पहले इसे पूरी तरह से जानना सुनिश्चित करें (जैसे कि यह स्वाभाविक हो जाता है और जब आप बनाए रखने के लिए संकोच नहीं करेंगे और कब रिलीज़ करेंगे), इससे पहले कि आप इसे सही इस्तेमाल करते हैं, इससे आपको इससे बहुत परेशानी होगी।
@property (nonatomic, retain) NSMutableArray * checkinArray; मेरे। एच में checkinArray = [[NSMutableArray alloc] init]; viewdidload में और [checkinArray रिलीज]; dealloc में (आखिरी व्यक्ति समस्या नहीं है क्योंकि यह भी दुर्घटनाग्रस्त है अगर मैं इस लाइन को dealloc से हटा दें)। क्या आप कुछ गलत देखते हैं? – BlackM
मुझे लगता है कि समस्या यह है कि आप टिप्पणी में प्रदान की है कोड के इस स्निपेट में है,
[checkinArray addObject:checkinsA];
[checkinsA.taggedID release];
[checkinsA.taggedName release];
[checkinsA release];
taggedID
और taggedName
checkinsA
वस्तु की संपत्ति हैं। उन्हें केवल dealloc
विधि में रिलीज़ किया जाना चाहिए। सरणी ऑब्जेक्ट पेड़ को बरकरार नहीं रखती है। यह केवल रूट ऑब्जेक्ट को बरकरार रखता है। तो यहां एक रिलीज नहीं होनी चाहिए। तो बीच में दो लाइनों को खटखटाएं और इसे
[checkinArray addObject:checkinsA];
[checkinsA release];
checkinsA.taggedID और टैग किए गए नाम चेकइन ए में एनएसएमयूटेबल आरे हैं। इसके अलावा चेकइन्सए लूप के लिए है। – BlackM
(उपयोगकर्ताओं में NSDictionary * उपयोगकर्ता) { चेकइन * चेकइन्सए = [[चेकइन एलोक] init]; checkinsA.taggedName = [[NSMutableArray alloc] init]; checkinsA.taggedID = [[NSMutableArray alloc] init]; ...... [checkinArray addObject: checkinsA]; [checkinsA.taggedID रिलीज]; [checkinsA.taggedName रिलीज]; [चेकइन्स ए रिलीज]; – BlackM
- 1. NSMutableArray खाली है addObject
- 2. [NSMutableArray objectAtIndex:]: सूचकांक 0 खाली सरणी '
- 3. NSMutableArray
- 4. NSMutableArray
- 5. NSMutableArray
- 6. NSMutableArray
- 7. उद्देश्य-सी: NSMutableArray को छंटाई NSMutableArray
- 8. NSMutableArray alloc init बनाम NSMutableArray सरणी
- 9. NSMutableArray removeLastObject अपवाद
- 10. कैसे ठीक से Formtastic
- 11. सीएसआरएफ टोकन - ठीक से कैसे कार्यान्वित करें?
- 12. समानता को ठीक से कैसे ओवरराइड करें?
- 13. UIWebView में प्रमाणीकरण कैसे ठीक से करें?
- 14. ठीक से यूआरएल एन्कोड कैसे करें?
- 15. आईओएस: NSMutableArray initWithCapacity
- 16. उद्देश्य-सी एक एनएसएआरएआर ठीक से कॉपी करें?
- 17. कैसे ठीक से
- 18. कैसे ठीक से
- 19. कैसे दर्ज ठीक से
- 20. कैसे ठीक से आईओएस
- 21. NSMutableDictionary या NSMutableArray
- 22. NSMutableArray NSArray को
- 23. जोड़ना C++ NSMutableArray
- 24. कोको structs और NSMutableArray
- 25. NSMutableArray में CGRect मानों को कैसे स्टोर करें?
- 26. NSTimeInterval मानों को NSMutableArray में कैसे स्टोर करें?
- 27. NSMutableArray छंटाई - केस संवेदी
- 28. कॉपी NSMutableArray एक और
- 29. jQuery AJAX सफलता फ़ंक्शन से सरणी कैसे ठीक से करें?
- 30. पाइथनिक रूप से शब्दकोश से डिफ़ॉल्ट मान कैसे ठीक करें?
क्या आप उस भाग को जोड़ सकते हैं जहां आप सरणी में ऑब्जेक्ट जोड़ रहे हैं? –
[checkinArray addObject: checkinsA]; [checkinsA.taggedID रिलीज]; [checkinsA.taggedName रिलीज]; [चेकइन्स ए रिलीज]; जहां चेकइन्स एक कस्टम ऑब्जेक्ट है। यह आदेश लूप में भी है। – BlackM