【发布时间】:2012-03-01 06:40:37
【问题描述】:
在xcode中,你创建了一个UIViewController子类后,在viewDidUnload方法中,有一个xcode添加的注释:
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
这里xcode推荐我们使用self.myOutlet=nil来释放对象。
但是在xcode4中,有一个很酷的特性:你可以将一个Interface Builder的outlet拖到它的所有者的头文件中,然后xcode会在viewDidUnload方法中自动创建IBOutlet对象和相关的发布代码。
问题是在上面的场景中,它生成的代码是这样的:
- (void)viewDidUnload {
[super viewDidUnload];
[self setFoo:nil];
}
我提到“self.foo = nil;”被“[self setFoo:nil];”替换。
有人知道区别吗?如果没有区别,为什么xcode4会改变它?
谢谢。
【问题讨论】:
标签: iphone objective-c xcode4