O requisito do inicializador 'init (json :)' pode ser atendido apenas por um inicializador `required` na definição da classe não final 'UIColor'
Estou tentando escrever uma extensão para satisfazer um protocolo em uma extensão como esta:
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])
}
}
Estou recebendo este erro:Initializer requirement 'init(json:)' can only be satisfied by a required initializer in the definition of non-final class 'UIColor'
. Se eu adicionar umrequired
palavra-chave, recebo este erro'required' initializer must be declared directly in class 'UIColor' (not in an extension)
. Existe uma razão e alguma maneira de contornar isso?
Editar: Só para ficar claro, aqui está o protocolo
protocol JSONRepresentable {
init?(json: Any)
}