Я немного поиграл со Swift 4 и Codable
и застрял в каком-то сценарии с вложенными протоколами, которые все соответствуют Codable
.
Упрощенный пример выглядит так:
protocol CodableSomething: Codable {}
protocol CodableAnotherThing: Codable {
var something: CodableSomething { get }
}
struct Model: CodableAnotherThing {
var something: CodableSomething
}
Этот код вызывает ошибки сборки с Xcode 9 Beta 5:
- Тип «Модель» не соответствует протоколу «Декодируемый»
- Тип «Модель» не соответствует протоколу «Кодируемый»
Так вот, я не ожидал этих ошибок, так как понимал, что соответствие этим протоколам будет автоматически сгенерировано компилятором, хотя на самом деле я даже не мог реализовать это соответствие вручную без ошибок сборки. Я также пробовал несколько разных подходов к решению такой вложенной структуры модели с использованием Codable
, но я просто не мог заставить ее работать.
Мой вопрос: это ошибка компилятора (это все еще бета-версия) или я делаю что-то не так?