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