现在我使用 Objective-C 已经 5 个多月了,我也在 App Store 发布了我的第一个应用程序,但我仍然对语言的核心功能有疑问。
我什么时候应该使用 self
访问 iVars,什么时候不应该使用?
发布 socket 时,您在 viewDidUnload 中编写 self.outlet = nil
,而不是在 dealloc
中编写 [outlet release]
。为什么?
最佳答案
当您编写 self.outlet = nil
时,会调用 [self setOutlet:nil];
方法。当您编写 outlet = nil;
时,您可以直接访问变量 outlet
。
如果您使用 @synthesize outlet;
则方法 setOutlet:
会自动生成,并且如果您将属性声明为 @property (retain) NSObject outlet;
,它会在分配新对象之前释放对象。