2010-10-26 12 views

उत्तर

8

यह सब आपके ऐप पर निर्भर करता है, आमतौर पर आपको ऐप्पल के अनुशंसित प्रथाओं को छोड़कर कुछ विशेष करने की ज़रूरत नहीं है।

व्यू कंट्रोलर जो इस समय दिखाई नहीं दे रहे हैं उन्हें didReceiveMemoryWarning संदेश मिलेगा। डिफ़ॉल्ट रूप से ([super didReceiveMemoryWarning] पर कॉल करना) नियंत्रक का दृश्य अनलोड (रिलीज़, मुक्त) है। चूंकि दृश्य अनलोडिंग है, देखें नियंत्रक को viewDidUnload प्राप्त होता है जहां आपको अपने सभी IBOutlets (या अन्यथा बनाए गए UI तत्व) को छोड़ना चाहिए। केवल तभी दृश्य पूरी तरह से हटाया जा सकता है और स्मृति मुक्त हो सकती है।

didReceiveMemoryWarning आप ज्यादा डेटा के रूप में भी नि: शुल्क आप कर सकते हैं के रूप में करना चाहिए - अगर आप ViewController में डेटा मॉडल के कुछ हिस्से की दुकान, इसे जारी है, और viewDidLoad में फिर से संगठित है कि जब आपके विचार फिर से भरी हुई है कहा जा सकता है (जब उपयोगकर्ता नेविगेट करता है इस नियंत्रक पर वापस)। आप अपने मॉडल वर्गों को भी स्मृति मुक्त करने के लिए सूचित कर सकते हैं।

+0

धन्यवाद! ... आखिरी अनुच्छेद वह सुराग था जिसे मैं ढूंढ रहा था। – Omer

-1

यदि आप किसी अन्य फ़ाइल को लॉग या लिखते हैं, तो "डिस्क" स्थान के साथ कोई समस्या हो सकती है।

इसके अलावा आपको मेमोरी लीक की जांच करनी चाहिए।

0

didReceiveMemoryWarning में, आपको स्मृति से बाहर निकलने से रोकने के लिए किसी भी कैश किए गए या गैर-आवश्यक आइटम को छोड़ना चाहिए।

1

यह वास्तव में आपके ऐप पर निर्भर करता है।

यदि आपका ऐप इंटरनेट से कई सामग्रियों को डाउनलोड और कैश करता है, तो आपको चेतावनी प्राप्त करते समय जितना संभव हो सके शुद्ध करना चाहिए।

यदि आपका ऐप ओपनजीएल गेम है, तो आपके पास एक बनावट/ध्वनि/डेटा प्रबंधक हो सकता है जो कुछ अप्रयुक्त डेटा का संदर्भ देता है, जिसे आप फिर मुक्त करना चाहते हैं। कोकोस 2 डी इस तरह की चीजें प्रबंधित करता है।

यदि आपका ऐप स्मृति गहन नहीं है, तो आपके पास कहीं मेमोरी लीक है, और आपको 1) एप्पल द्वारा मेमोरी मैनेजमेंट प्रोग्रामिंग गाइड को पढ़ना चाहिए 2) इंस्ट्रूमेंट्स/लीक का उपयोग करें।

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