[swift-evolution] Some clarity lost from the great renaming

Dave Abrahams dabrahams at apple.com
Tue Oct 18 20:43:18 CDT 2016

on Tue Oct 18 2016, Brandon Knope <swift-evolution at swift.org> wrote:

> I meant to bring this up a bit ago but just came across it again.
> I find this to not read properly:
> button.setTitle("Test", for: .normal) //for normal what?
> The for argument is really only clear in meaning when you are typing
> it out and see that it is a UIControlState type. While reading it
> without this context is it as clear? .normal doesn't seem descriptive
> enough on its own.
> Contrast this with UISegmentedControl:
> segmented.dividerImage(forLeftSegmentState: .normal, rightSegmentState: .normal, barMetrics:
> .default)
> Here the parameter labels are needed because there needs to be a
> distinction in the method between left and right. But here it is not
> forLeft: or forRight: it is the much more clear forLeftSegmentState:
> So my question is: why was this not setTitle(forControlState:) or forButtonState, etc...?

This is really not an evolution question at this point.  I suggest
filing radars against UIKit for things whose names could be improved.


More information about the swift-evolution mailing list