这两者有什么区别?
self.view.color = [UIColor redColor];
[self.view setColor:[UIColor redColor]];
答案 0 :(得分:3)
没有
self.view.color = ...
隐式调用属性的setter。[self.view setColor:...]
,您可以明确调用setter。更详细:UIView
的{{1}}属性类似于:
color
在Objective-C中,它自动定义底层的ivar @property (nonatomic, strong) UIColor* color;
,并为setter和getter生成代码。 (生成的代码取决于您指定的修饰符_color
,...)
当您键入nonatomic
时,编译器会发现您的self.view.color = ...
是属性,并在内部将其替换为color
。
答案 1 :(得分:0)
无,但不是setColor:
,而是setcolor:
[self.view setColor:[uicolor redColor]];
答案 2 :(得分:0)
主要是一个语法问题,它们都调用相同的setter,因此你可以根据个人喜好使用它们同等地使用它们。)