viewDidUnload和didReceiveMemoryWarning兼容性

时间:2013-02-19 11:36:36

标签: ios

在ios6上不允许使用viewDidUnload,因此如何兼容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");

}

2 个答案:

答案 0 :(得分:0)

  

在iOS 6中,现在不推荐使用UIViewController的 viewWillUnload viewDidUnload 方法。如果您使用这些方法来发布数据,请改用 didReceiveMemoryWarning 方法。如果未使用此方法,也可以使用此方法释放对视图控制器视图的引用。

viewDidUnload中当前使用的代码应移至didReceiveMemoryWarning。它适用于iOS5和iOS iOS6也。实际上,在此更改发生之前,仅在应用程序确实收到内存警告时才会调用viewDidUnload方法。所以viewDidUnload没有任何特别的意义。所以他们弃用它。

答案 1 :(得分:0)

从iOS 6开始,viewDidUnloadviewWillUnload没有任何角色。

因此,如果您需要处理内存警告,请在didReceiveMemoryWarning

中执行此操作