В расширении. Я работал над этой проблемой и больше не могу ее проверять. Извиняюсь.

аюсь написать расширение, чтобы удовлетворить протокол в расширении, например, так:

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)
}

Ответы на вопрос(2)

Ваш ответ на вопрос