从 AnyObject 转换为 CGColor?没有错误或警告
Casting from AnyObject to CGColor? without errors or warnings
你好 Whosebug :)
自从我升级到 swift 2.0
后,我一直 运行 遇到一个奇怪的问题
我正在尝试设置边框颜色,所以我写了 self.layer.borderColor = borderColor as! CGColor
,其中 borderColor 是 AnyObject
,而 self.layer.borderColor 是 CGColor?
如果我写 self.layer.borderColor = borderColor as! CGColor
我会收到警告
Treating a forced downcast to 'CGColor' as optional will never produce 'nil'
,建议改用 as?
如果我改写 self.layer.borderColor = borderColor as? CGColor
我会得到错误
Conditional downcast to CoreFoundation type 'CGColor' will always succeed
为了确保我没有遗漏某些东西,我还尝试编写 container.layer.borderColor = borderColor as CGColor
和 container.layer.borderColor = borderColor
这两个都给出了以下错误:
'AnyObject' is not convertible to 'CGColor'; did you mean to use 'as!' to force downcast?
只是 运行 XCode 在使用 as!
时给出的警告并不是那么糟糕,但我宁愿让我的代码警告免费。为了确保我真的需要你的帮助。这是我不理解的东西,还是我应该报告的 Swift 2.0 中的一个错误。
干杯!
雅各
xcode 也给了我以下提示:
Add parentheses around the cast to silence this warning
嗯...当xcode这么说时...
layer.borderColor = (borderColor as! CGColor)
你使用的图层颜色是核心图形,你需要用属性 cgColor
设置核心图形颜色
layer.borderColor = UIColor.red.cgColor
是的,这是一个众所周知的错误,但仍未解决! Unnecessary message for non-optional to non-optional cast
如果您不喜欢警告,您应该遵循 Xcode 建议:
Add parentheses around the cast to silence this warning.
你好 Whosebug :)
自从我升级到 swift 2.0
后,我一直 运行 遇到一个奇怪的问题我正在尝试设置边框颜色,所以我写了 self.layer.borderColor = borderColor as! CGColor
,其中 borderColor 是 AnyObject
,而 self.layer.borderColor 是 CGColor?
如果我写 self.layer.borderColor = borderColor as! CGColor
我会收到警告
Treating a forced downcast to 'CGColor' as optional will never produce 'nil'
,建议改用 as?
如果我改写 self.layer.borderColor = borderColor as? CGColor
我会得到错误
Conditional downcast to CoreFoundation type 'CGColor' will always succeed
为了确保我没有遗漏某些东西,我还尝试编写 container.layer.borderColor = borderColor as CGColor
和 container.layer.borderColor = borderColor
这两个都给出了以下错误:
'AnyObject' is not convertible to 'CGColor'; did you mean to use 'as!' to force downcast?
只是 运行 XCode 在使用 as!
时给出的警告并不是那么糟糕,但我宁愿让我的代码警告免费。为了确保我真的需要你的帮助。这是我不理解的东西,还是我应该报告的 Swift 2.0 中的一个错误。
干杯!
雅各
xcode 也给了我以下提示:
Add parentheses around the cast to silence this warning
嗯...当xcode这么说时...
layer.borderColor = (borderColor as! CGColor)
你使用的图层颜色是核心图形,你需要用属性 cgColor
设置核心图形颜色layer.borderColor = UIColor.red.cgColor
是的,这是一个众所周知的错误,但仍未解决! Unnecessary message for non-optional to non-optional cast
如果您不喜欢警告,您应该遵循 Xcode 建议:
Add parentheses around the cast to silence this warning.