What is the difference between these two?
self.view.color = [UIColor redColor];
[self.view setColor:[UIColor redColor]];
What is the difference between these two?
self.view.color = [UIColor redColor];
[self.view setColor:[UIColor redColor]];
Nothing.
self.view.color = ...
the property's setter in called implicitly.[self.view setColor:...]
you call the setter explicitly.More in detail: UIView
has a color
property something like:
@property (nonatomic, strong) UIColor* color;
In Objective-C this automatically defines an underlying ivar _color
, and generates code for the setter and getter. (What code is generated depends on the modifiers nonatomic
, ... you specify.)
When you type self.view.color = ...
the compiler sees that your color
is a property, and internally replaces it with [self.view setColor:...]
.