2013-02-19 126 views
0

viewDidUnload不允許在ios6上,所以如何兼容性viewDidUnload和didReceiveMemoryWarning來調用。 我需要viewDidUnload和didReceiveMemoryWarning兼容性

- (void)viewDidUnload{ 

self.listArr=nil; 

[super viewDidUnload]; 
} 




- (void)didReceiveMemoryWarning 
{ 

[super didReceiveMemoryWarning]; 
float sysVer =[[[UIDevice currentDevice] systemVersion] floatValue]; 
if (sysVer>= 6.0f){ 
    if([self isViewLoaded] && !self.view.window){ 
     self.listArr=nil; 

     self.view = nil; 
    } 
} 

NSLog(@" BrowseComment didReceiveMemoryWarning"); 

}

或僅在iOS5的使用後續的代碼和iOS6的

- (void)didReceiveMemoryWarning 
{ 

[super didReceiveMemoryWarning]; 

    if([self isViewLoaded] && !self.view.window){ 
     self.listArr=nil; 

     self.view = nil; 
    } 


NSLog(@" BrowseComment didReceiveMemoryWarning"); 

}

+0

請參閱本[http://stackoverflow.com/questions/12674268/ios-6-viewdidunload-migrate-to-didreceivememorywarning ] [1] [1]:http://stackoverflow.com/questions/12674268/ios-6-viewdidunload-migrate-to-didreceivememorywarning – 2013-02-19 11:44:24

回答

0

在iOS 6中,所述viewWillUnloadviewDidUnload UI的方法ViewController現在已被棄用。如果您使用這些方法發佈數據,請改用didReceiveMemoryWarning方法。如果未使用視圖控制器視圖,也可以使用此方法釋放對視圖控制器視圖的引用。

當前在viewDidUnload中使用的代碼應該被轉換爲didReceiveMemoryWarning。它同時適用於iOS5 & iOS6。實際上,在此更改發生之前,只有在應用程序確實收到內存警告時,纔會調用viewDidUnload方法。所以viewDidUnload沒有什麼特別的意義。所以他們棄用它。

+0

如何在iOS5的發佈數據和iOS6的 – pengwang 2013-02-19 11:43:36

+0

您可以使用didReceiveMemoryWarning在這兩種情況下..如果使用ios5,請參閱編輯 – 2013-02-19 11:52:15

0

從iOS 6開始,viewDidUnloadviewWillUnload沒有任何作用。

所以,如果你需要處理的內存警告,這樣做在didReceiveMemoryWarning

+0

,我可以在didReceiveMemoryWarning中執行它 – pengwang 2013-02-19 11:49:31

+0

@peng wang:確定你可以在iOS 5中做到這一點。 – 2013-02-19 14:14:54