2015-11-07 2 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 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, которую я должен сообщить.

Cheers!

Jacob

ответ

3

Xcode также дает мне следующую подсказку:

Add parentheses around the cast to silence this warning

хорошо ... когда Xcode так говорит ...

layer.borderColor = (borderColor as! CGColor) 
0

Вы используете цвет слоя, который является базовой графикой, вам необходимо установить основной графический цвет с свойством cgColor

layer.borderColor = UIColor.red.cgColor 
Смежные вопросы