0

我只是创建了一个新的 UIViewController 子类。在 interface builder 中添加了一些 UI 对象,并为这些 UI 对象创建了 outlet 并建立了各自的连接。

然后,突然间,我看到在我的 ViewController 的实现中为我自动生成了这段代码:

- (void)viewDidUnload {
    imageView = nil;  
    scrollView = nil;
    [super viewDidUnload];
}

之前没注意,应该是这样的吗?为什么?

4

3 回答 3

2

我不记得它是自动生成的,但 viewDidUnload 在 iOS 6 中已被弃用,因此您可以删除它(假设您的目标是 6.0+)。

于 2013-08-09T07:11:18.220 回答
0

viewDidUnload 方法的目的是释放您在 viewDidLoad 方法中创建的任何资源,因此它的作用与 viewDidUnload 方法完全相反。Xcode 提供了自动释放分配资源的功能,因此您可以在 viewDidUnload 方法中找到该代码。有关更多信息,您可以点击以下链接: viewDidUnload 参考。

于 2013-08-09T07:15:28.763 回答
0

什么时候调用Received memory warning.

 - (void)viewDidUnload NS_DEPRECATED_IOS(3_0,6_0); // Called after the view controller's view is released and set to nil. For example, a memory warning which causes the view to be purged. Not invoked as a result of -dealloc.

顺便说一句,如果你想释放某事。当收到内存警告时,您可以使用

- (void)didReceiveMemoryWarning; // Called when the parent application receives a memory warning. On iOS 6.0 it will no longer clear the view by default.
于 2013-08-09T07:18:42.247 回答