2012-12-06 20 views
6

मैं आईओएस विकास के लिए अपेक्षाकृत नया हूं इसलिए मुझे मिली त्रुटि के मूल कारण को जानने में आपकी सहायता की सराहना करें।एक उद्देश्य-सी संदेश पते पर एक हटाए गए ऑब्जेक्ट (ज़ोंबी) को भेजा गया था: 0x75d52a0

मैंने इंस्ट्रूमेंट्स (यानी आवंटन-ज़ोंबी प्रोफाइलर) का उपयोग करके त्रुटि को डीबग करने का प्रयास किया लेकिन मुझे प्रस्तुत किए गए कॉल स्टैक का एहसास नहीं हो सका।

इस तरह यूजर इंटरफेस से जुड़े हुए हैं है: TabBarController -> navigationController -> TopPlacesTableViewController -> RecentPhotosTableViewController -> PhotoViewController

त्रुटि तब होती है जब मैं पिछली बार देखने में वापस बटन पर क्लिक करें (उस यानी PhotoViewController)। यह क्रिया पिछले हालिया फोटोशॉटव्यू कंट्रोलर को दिखाना है, लेकिन इसके बजाय एक अज्ञात डिलीओटेड ऑब्जेक्ट का उपयोग किया गया था, कभी-कभी व्यूविल्लियर और व्यूडिडएपियर की घटनाओं के बीच में।

इसके अतिरिक्त, मेरे पास जेनेरिकटेबल व्यू कंट्रोलर है जो TopPlacesTableViewController और RecentPhotosTableViewController का अभिभावक है। बच्चे माता-पिता में एक एनएसएमयूटेबलएरे संपत्ति सेट करते हैं जो डेटा है जो बच्चों के विचारों में लोड हो जाता है।

मैं वर्तमान में आईओएस 6 और एक्सकोड 4.5 का उपयोग कर रहा हूं।

[अद्यतन: कंसोल में, यह पंक्ति दिखायी गयी थी - "[UIView _ forgetDependentConstraint:]: संदेश को आवंटित उदाहरण xxx पर भेजा गया"]।

+0

क्या आप एआरसी के साथ संकलित हैं, या नहीं? –

+0

हां मैं हूं। मैंने अभी अनूप वैद्य से जवाब दिया कि मैंने कैसे पुष्टि की कि एआरसी चालू है। – user1881383

उत्तर

0

मुझे लगता है कि आप एआरसी का उपयोग नहीं कर रहे हैं, और आप अपनी पिछली वस्तु को पारित नहीं कर रहे हैं। इस बीच पिछली वस्तु जारी की गई और फिर आप इसे एक्सेस कर रहे हैं।

या तो आप एआरसी का उपयोग करने के लिए अपने कोड को दोबारा कर सकते हैं या रखरखाव या ऑटोरेलीज डाल सकते हैं।

+0

तत्काल उत्तर के लिए धन्यवाद! मैंने बस "आपका लक्ष्य -> ​​बिल्ड सेटिंग्स -> ऐप्पल एलएलवीएम कंपाइलर - भाषा -> उद्देश्य-सी स्वचालित संदर्भ गणना" पर सेटिंग की जांच की है और पुष्टि की गई है कि एआरसी चालू है। क्या वैसे भी मैं यह निर्धारित कर सकता हूं कि किस ऑब्जेक्ट को रिहा किया गया था और डेलोकेशन के बाद एक्सेस किया गया था? – user1881383

+0

यह खोजना बहुत मुश्किल है, आपको ब्रेकपॉइंट करना होगा और प्रत्येक पंक्ति पर कदम उठाना होगा ... एक बड़ा काम। या एक चीज जो आप कर सकते हैं, जैसा कि आप सुनिश्चित हैं कि आप एआरसी का उपयोग कर रहे हैं ताकि आप स्वयं नहीं कर सकें [... रिलीज]। तो आप क्या कर सकते हैं हर वस्तु को मजबूत बनाते हैं, और फिर जांचें। –

+0

अजीब चीज हुई। PhotoViewController को हटाने और स्टोरीबोर्ड पर एक नया खींचने के बाद, त्रुटि फिर से नहीं हुई। – user1881383

-1

जाओ उत्पाद के लिए> संपादित योजना> निदान तो पता करने के लिए जो वस्तु पुनः आवंटित की जाती है ज़ोंबी वस्तुओं

एक को तोड़ने बिंदु बनाने के सक्षम और कदम से कदम जाना पर जांच टैप करते हैं, यह शायद अपने ऑब्जेक्ट के लिए सूचक तो हटा दिया गया है ओएस ने आपके ऑब्जेक्ट को हटा दिया है।

+2

मैंने ज़ोंबी ऑब्जेक्ट्स को सक्षम किया है लेकिन कॉल स्टैक उपयोगी नहीं है। ऑब्जेक्टिव सी के कोड की एकमात्र समझने योग्य रेखा ऐपडिलेगेट की मुख्य विधि से शुरू होती है (यानी @autoreleasepool {वापसी UIApplicationMain (argc, argv, nil, NSStringFromClass ([PhotosAppDelegate class]);})। – user1881383

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