2015-11-07 44 views
2

你好StackOverflow的:)从AnyObject投射到CGColor?没有错误或警告

我已经运行到一个奇怪的问题,因为我升级到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中的一个错误,我应该报告。

干杯!

雅各

回答

3

Xcode中也给了我下面的提示:

Add parentheses around the cast to silence this warning

好...当Xcode中是这么说的......

layer.borderColor = (borderColor as! CGColor) 
0

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

layer.borderColor = UIColor.red.cgColor 
相关问题