В расширении. Я работал над этой проблемой и больше не могу ее проверять. Извиняюсь.
аюсь написать расширение, чтобы удовлетворить протокол в расширении, например, так:
extension UIColor: JSONRepresentable {
convenience init?(json: Any) {
guard let colourArray = json as? [CGFloat] else {
print("json was not an array of CGFloats")
return nil
}
self.init(red: colourArray[0],
green: colourArray[1],
blue: colourArray[2],
alpha: colourArray[3])
}
}
Я получаю эту ошибку:Initializer requirement 'init(json:)' can only be satisfied by a required initializer in the definition of non-final class 'UIColor'
, Если я добавлюrequired
Ключевое слово, я получаю эту ошибку'required' initializer must be declared directly in class 'UIColor' (not in an extension)
, Есть ли причина и есть ли способ обойти это?
Редактировать: Просто чтобы быть ясно, вот протокол
protocol JSONRepresentable {
init?(json: Any)
}