0

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");

}

4

2 回答 2

0

在 iOS 6 中,UIViewController 的viewWillUnloadviewDidUnload方法现已弃用。如果您使用这些方法来释放数据,请改用didReceiveMemoryWarning方法。如果不使用视图控制器的视图,您也可以使用此方法释放对视图控制器的视图的引用。

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

于 2013-02-19T11:41:41.103 回答
0

从 iOS 6 开始,viewDidUnloadviewWillUnload没有任何作用。

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

于 2013-02-19T11:43:19.087 回答