ios - 从 AnyObject 转换为 CGColor?没有错误或警告

标签 ios casting compiler-warnings cgcolor anyobject

你好 StackOverflow :)

自从我升级到 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 CGColorcontainer.layer.borderColor = borderColor两者这些给出了以下错误:

'AnyObject' is not convertible to 'CGColor'; did you mean to use 'as!' to force downcast?

当使用 as! 时,只是在 XCode 给出的警告下运行并没有那么糟糕,但我更愿意让我的代码没有警告。为了确保我真的需要你的帮助。这是我不理解的东西,还是我应该报告的 Swift 2.0 中的一个错误。

干杯!

雅各布

最佳答案

你使用的图层颜色是核心图形,你需要通过属性cgColor设置核心图形颜色

layer.borderColor = UIColor.red.cgColor

关于ios - 从 AnyObject 转换为 CGColor?没有错误或警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33589203/

相关文章:

ios - XCode 7 调试器不工作

javascript - 为什么 Javascript 仅对已分配的字符串进行字符串连接的类型转换?

python - 在 Python 中将值转换为各自数据类型的最快方法

c++ - 如何在编译期间输出诊断消息以告知调用了哪个重载函数

objective-c - 如何自动验证所有方法都在 xcode 中声明

ios - 均匀间隔多个 View 使用尺寸等级

ios - 如何在 UITableView 中创建单行 View 分隔符

assembly - 编译时寄存器检查 Thumb-2 代码

iphone - AFNetworking - 如何设置在超时时重试的请求?

mysql - 在 MySQL 中转换为十进制