【发布时间】:2015-06-01 11:24:48
【问题描述】:
开始学习 Swift 并尝试转换此 ObjectiveC 代码:
[[mySegmentedControl.subviews objectAtIndex:0] setTintColor:[UIColor blueColor]]
这会正确设置第一段的色调。
这是我获得相同代码的最接近的 Swift 版本:
mySegmentedControl?.subviews[0].tintColor = UIColor.blueColor()
我得到的错误是'@Ivalue $T9' is not identical to 'UIColor!!'
我不明白这个错误是什么意思。当我查看.tintColor 方法时,它列出了UIColor!?,但我还没有找到!? 在Swift 中的含义。
【问题讨论】:
-
如果 mySegmentedControl 是 IBOutlet?如果是,请声明它@IBOutlet var mySegmentedControl = UISegmentedControl!那你就不需要了?操作员。这不会解决整个问题,但这是一回事。如果 subviews[0] 可以返回 nil,那么它是一个可选的,所以也许放一个 ! [0] 之后。