【发布时间】:2016-02-08 22:09:03
【问题描述】:
你好 StackOverflow :)
自从我升级到 swift 2.0 后,我遇到了一个奇怪的问题
我正在尝试设置边框颜色,所以我在写self.layer.borderColor = borderColor as! CGColor,其中borderColor 是AnyObject,而self.layer.borderColor 是CGColor?
如果我写 self.layer.borderColor = borderColor as! CGColor 我会收到警告
将强制向下转换为“CGColor”作为可选将永远不会产生“nil”
建议改用as?
如果我改为写 self.layer.borderColor = borderColor as? CGColor 我会得到错误
有条件地向下转换为 CoreFoundation 类型 'CGColor' 将始终成功
为了确保我没有遗漏任何内容,我还尝试编写 container.layer.borderColor = borderColor as CGColor 和 container.layer.borderColor = borderColor这两个都给出了以下错误:
'AnyObject' 不能转换为 'CGColor';你的意思是用'as!'强制沮丧?
在使用as! 时,仅在 XCode 给出的警告下运行并没有那么糟糕,但我更愿意保持我的代码警告免费。为了实现我真的需要你的帮助。这是我不理解的事情,还是只是我应该报告的 Swift 2.0 中的一个错误。
干杯!
雅各布
【问题讨论】:
标签: ios casting compiler-warnings cgcolor anyobject