Приведение класса Swift в соответствие с протоколом, который требует инициализации

У меня есть следующееprotocol вSwift:

protocol FooConvertible{
    typealias FooType

    init(foo: FooType)
}

я могу сделатьSwift классы соответствуют этому в определении класса:

class Bar: FooConvertible {
    var baz: String = ""
    required init(foo: String){
        baz = foo
    }
}

Все идет нормально. Однако проблема возникает, когда я пытаюсь привести класс в соответствие с расширением (с классами Какао это мой единственный вариант, так как у меня нет источника):

class Baz {
    var baz = ""
}

extension Baz: FooConvertible{

    required convenience init(foo: String) { // Insists that this should be in the class definition
        baz = foo
    }
}

extension NSURL: FooConvertible{

    required convenience init(foo: String) { // this also fails for the same reason

    }
}

этораньше было возможнов предыдущих версиях языка

По какой причине он был удален?

Это означало бы, что все XXXLiteralConvertible Protocols запрещены для классов Какао!

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

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