天天看點

IOS6、IOS7—記憶體警告處理

記憶體警告處理:

- (void)viewDidUnload {

    [super viewDidUnload];

    //1.釋放子視圖

    Release(_TableView);

    //2.釋放資料

    Release(_data);

}

隻要收到記憶體警告就會調用這個方法,ios6.0之後或者之前都會調用didReceiveMemoryWarning,他不會把view設定為nil. 但ios6.0之前他會自動調用viewDidUnload,在調用之前他會把self.view設定為nil. 是以我們做記憶體警告相容的話,在父類中判斷。 在父類中添加。

//做記憶體警告版本相容

- (void)didReceiveMemoryWarning

{

    [super didReceiveMemoryWarning];

    //擷取目前系統版本

    float version = [[UIDevice currentDevice].systemVersionfloatValue];

    if (version >= 6.0) {

        //如果滿足條件,說明self.view上級父視圖中沒有window,說明self.view沒有在界面上顯示

        if (self.view.window == nil) {

            //1.釋放self.view

            self.view = nil;

           //ios6.0之前使用的方法到ios3.0

            [self viewDidUnload];

        }

    }

}

好球網