2009-08-12 10 views
6

में didReceiveMemoryWarning का जवाब कैसे दें मेरा ऐप बहुत मेमोरी का उपयोग करता है। आम तौर पर यह ठीक चलता है, लेकिन लोड किए गए डिवाइस पर जिसे थोड़ी देर में पुनरारंभ नहीं किया गया है, इसे कुख्यात कम मेमोरी त्रुटि से जोड़ा जाएगा।OpenGL ऐप

मैं didReceiveMemoryWarning पर प्रतिक्रिया देना चाहता हूं और अपने कुछ कैश को मुक्त करना चाहता हूं।

लेकिन मुझे समस्या है कि मेरा ऐप ओपनजीएल ईएस टेम्पलेट से अलग है और इसमें व्यू कंट्रोलर नहीं है। इसमें ऐप प्रतिनिधि है जो glView का संदर्भ रखता है।

didReceiveMemoryWarning संदेश को फँसाने के लिए मैं क्या कर सकता हूं ताकि मैं जवाब दे सकूं?

उत्तर

9

यह आपके Application Delegate के भीतर भी उपलब्ध है।

-(void)applicationDidReceiveMemoryWarning:(UIApplication *)application 
{ 
    NSLog(@"Received memory warning!"); 
} 
10

तुम भी एक तरीका है एक पर्यवेक्षक के रूप में, UIApplicationDidReceiveMemoryWarningNotification अधिसूचना को जोड़ सकते हैं, किसी भी वर्ग में आप चाहते हैं। कोड इस तरह पसंद कर सकता है:

- (void) cleanMemory: (NSNotification*) notification { 
    // Save memory! 
} 

- (id) init { // Or any other function called early on. 
    // other init code 
    [[NSNotificationCenter defaultCenter] 
    addObserver:self selector:@selector(cleanMemory:) 
      name:UIApplicationDidReceiveMemoryWarningNotification 
     object:nil]; 
    return self; 
}