Why alias a new name and explicitly release the IBOutlet property?
最近,苹果公司的一些例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | @interface ViewController : UIViewController { **// Notice no more ivar here.** } @property (nonatomic, retain) IBOutlet UIWebView *webView; @end @implementation ViewController @synthesize webView = _webView; ... - (void)dealloc { [_webView release]; [super dealloc]; } |
我的问题是,为什么将
还有一个问题,如果我声明的财产没有相关的IVAR,我需要在
当您的
苹果的惯例是命名ivar(无论是在接口中显式声明还是在
你最后一个问题的答案基本上是肯定的,尽管从技术上讲,答案是"有时"。只有在IVAR中存储了一个被保留的对象时,才需要释放该对象。大部分时间都是这样。但是,属性只是调用名为"MyProperty"和"SetMyProperty"等方法的快捷方式,因此可能有一对具有这些名称的方法和一个实际上没有与之配对的IVAR的关联属性。但是,如果要用
我认为xcode 4模板对属性的使用将比我能更好更详细地解释这一点。