Я знаю, подклассы UIColor
не рекомендуется. Apple говорит,
Большинству разработчиков не нужно подкласс UIColor
Но я делаю. Подробнее о том, почему можно найти в другой вопрос , я отправил вчера. Эта конкретная проблема была решена, но я столкнулся с другой проблемой.
Допустим, у меня есть этот пользовательский класс цвета:
class MyColor:UIColor{
convenience init(test:String){
self.init(red: 0, green: 0, blue: 0, alpha: 1)
}
}
//Then do this anywhere:
let myColor = MyColor(test: "test")
let temp:Any? = myColor
let c = temp as! MyColor
Это дает сбой. Это происходит сбой, потому что он не может привести temp
к MyColor
:
Не удалось преобразовать значение типа 'UIDeviceRGBColor' (0x ..) в 'MyColor' (0x ..)
myColor
является экземпляром MyColor
. Этот же экземпляр сохраняется в переменной типа Any?
, а затем возвращается к MyColor
. Но это не может.
Хотя, если я приведу его к UIColor
, все будет работать. Но я не могу сделать это в моем случае (объяснил в предыдущем вопросе).
Почему это не работает?