6

मैं ARC का उपयोग कर एक आईफोन प्रोजेक्ट पर हूं। एप्लिकेशन UINavigationController का उपयोग करके एक नेविगेशन आधारित है।एआरसी का उपयोग करते समय ऑब्जेक्ट्स को शून्य पर सेट करते समय?

सामान्य उपयोग केस "मुख्य" UIViewController से "माध्यमिक" UIViewController कई बार, शायद 100 गुना तक जाना है। द्वितीयक नियंत्रक में बहुत सारी स्थिर, स्थानीय पीएनजी छवियां हैं, उनमें से कुछ दोहराई गई हैं।

मैं एप्लिकेशन को प्रोफाइल कर रहा हूं और मैं देख सकता हूं कि, "मुख्य" से "माध्यमिक" नियंत्रक से कैसे जा रहा है, यह लगभग 0.8 एमबी आवंटित करता है, लेकिन, बैक बटन दबाते समय, यह स्मृति को मुक्त नहीं करता है। तो, जब मैं माध्यमिक नियंत्रक के लिए फिर से जाना है, अन्य 0.8 एमबी आवंटित किए जाते हैं, और इतने पर ...

डिबगिंग, मैंने देखा है कि माध्यमिक UIViewController की viewDidUnload: विधि बुलाया जा रहा है कभी नहीं है, लेकिन मैं भी पढ़ा है कि यह है कि विधि जहां मुझे नियंत्रक द्वारा रखे गए संदर्भों को शून्य करने के लिए सेट करना है। viewDidDisappear: में ऐसा करने में मदद नहीं होती है, क्योंकि मैं चाहता हूं कि बैक बटन दबाते समय केवल तब होता है, यानी स्टैक से नियंत्रक को पॉप करते समय (viewDidDisappear: विधि को स्टैक पर किसी अन्य नियंत्रक को दबाते समय भी कॉल किया जाएगा)।

तो प्रश्न हैं: क्या मुझे वहां ऐसा करना है? क्या मैं उस विधि को बुला सकता हूं? क्या यह व्यवहार ठीक है (प्रोफाइलिंग, आवंटन "मुख्य" -> "माध्यमिक" -> "मुख्य" -> "माध्यमिक" -> ...) के कुछ चक्रों के बाद 20 एमबी तक चला गया ??

आप सभी पहले से धन्यवाद

+0

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

+0

लागू - (शून्य) didReceiveMemoryWarning। यह वह तरीका है जिसे आपका ऐप बहुत अधिक मेमोरी का उपयोग करते समय बुलाया जाता है। – MJB

+0

आप बैक बटन व्यवहार को कैसे कार्यान्वित कर रहे हैं? क्या आप इसके लिए कोड पोस्ट कर सकते हैं? – Jim

उत्तर

1

एआरसी बस कोड को कम करने और आंतरिक रूप से स्मृति का प्रबंधन किया जाता है। अधिक जानकारी के लिए कृपया नीचे दिए गए ट्यूटोरियल के माध्यम से जाएं ताकि आप अवधारणाओं को अधिक आसानी से समझ सकें।

Understanding Automatic Reference Counting in Objective-C

मुझे आशा है कि यह आपकी सहायता कर सकता है।

+0

मुक्त नहीं हुआ वास्तव में यह एआरसी के बारे में मेरी जानकारी बढ़ाने के लिए करता है, धन्यवाद, इसके लिए +1! लेकिन यह मेरी समस्या का समाधान नहीं करता है, मुझे किसी भी तरह, आईओएस को बताएं कि उस माध्यमिक नियंत्रक का उदाहरण, जब भी उपयोगकर्ता बैक बटन दबाता है, उसे नेविगेशन स्टैक से पॉप अप करता है, अब इसका उपयोग नहीं किया जाएगा। – sonxurxo

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

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