正如标题所解释的,如果我控制将 xib 文件中的组件拖向 .h 文件以方便地创建一个出口,比如doublePicker
或其他东西,xcode 将帮助在viewDidUnloaded:
这样的方法中创建语句:
[self setDoublePicker:nil];
那和有什么区别:
self.doublePicker = nil;
哪一个表现更好?
正如标题所解释的,如果我控制将 xib 文件中的组件拖向 .h 文件以方便地创建一个出口,比如doublePicker
或其他东西,xcode 将帮助在viewDidUnloaded:
这样的方法中创建语句:
[self setDoublePicker:nil];
那和有什么区别:
self.doublePicker = nil;
哪一个表现更好?
Foo *foo = [[Foo alloc] init];
foo.bar = YES;
[foo setBar:YES];
最后两行将编译完全相同。唯一改变这一点的是属性是否指定了 getter 和/或 setter 属性;但是,它所做的只是更改发送的消息,而不是是否发送消息:
if ([someView isEmpty]) { /* ... */ }
if (someView.empty) { /* ... */ }
两条线都给出相同的结果。. 一次参考这个以更好地理解点符号。
它们是等价的。使用 Objective-C 属性设置值foo = nil
等同于调用setFoo:nil
. 看:
在简单的第一个是调用名称的方法setDoublePicker
,第二个是你设置self.doublePicker
为nil
。
有关更多信息,请阅读 self.var 和简单 var 之间的问题差异。
并且还阅读了这个官方文档。
如果您没有对实例变量使用任何自定义 setter 或 getter 方法,则两者都是相同的。如果您使用任何自定义 setter 或 getter,那么您将收到以下代码的警告
[self setDoublePicker:nil ];