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:...].
Mainly it is a syntax issue, both call the same setter so you can use both equally depending which one you personally prefer :)
None, however that would be setColor:, not setcolor:
[self.view setColor:[uicolor redColor]];