天天看点

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];

        }

    }

}

好球网