"if" 和三元运算符的不同行为
Different behavior with "if" and the ternary operator
我可以编译这个:
if (line == selectedLine) {
}
其中 line
是 Line
类型,而 selectedLine
是同一类型的可空类型。
但这失败了:
layer.strokeColor = (line == selectedLine ? UIColor.greenColor() : line.color.CGColor)
错误 Line is not convertible to MirrorDisposition
这是为什么?
您正在尝试将图层描边颜色设置为 UIColor
。您应该像在第二种情况下那样使用 .CGColor
。
Swift 中的错误消息并不总是最有用的。
此外,仅将条件放在方括号中。
抱歉,错误是我需要从 UIColor.greenColor()
获取 CGColor
属性
再一次,Swift 编译器的消息似乎不可靠...
UIColor.greenColor()
returns 一个 UIColor
实例。
尝试使用
UIColor.greenColor().CGColor
我可以编译这个:
if (line == selectedLine) {
}
其中 line
是 Line
类型,而 selectedLine
是同一类型的可空类型。
但这失败了:
layer.strokeColor = (line == selectedLine ? UIColor.greenColor() : line.color.CGColor)
错误 Line is not convertible to MirrorDisposition
这是为什么?
您正在尝试将图层描边颜色设置为 UIColor
。您应该像在第二种情况下那样使用 .CGColor
。
Swift 中的错误消息并不总是最有用的。
此外,仅将条件放在方括号中。
抱歉,错误是我需要从 UIColor.greenColor()
CGColor
属性
再一次,Swift 编译器的消息似乎不可靠...
UIColor.greenColor()
returns 一个 UIColor
实例。
尝试使用
UIColor.greenColor().CGColor