2015-11-07 47 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 
相關問題