Ошибка быстрой компиляции для оболочек свойств с Codable в нескольких файлах - PullRequest
0 голосов
/ 28 октября 2019

Сбой компиляции для оболочек свойств с кодируемыми в нескольких файлах.

Я нашел тестовые коды в исходном коде Swift:

@propertyWrapper
struct Printed<Value: Codable>: Codable {
    var wrappedValue: Value {
        didSet { print(wrappedValue) }
    }
}

struct Foo: Codable {
    @Printed var bar: Bool = false
}
func test(_ value: Foo = Foo()) {
  let _: Codable = value
}

и используйте их в моем тестовом проекте:

TestProject

Но компиляция завершилась с ошибкой:

Type 'Foo' does not conform to protocol 'Encodable'

Как это исправить?

1 Ответ

1 голос
/ 28 октября 2019

Тестовая структура Foo не обязательна для кодируемости.

Тест находится на свойстве bar. и тип Bool уже соответствует Codable.

struct Foo{
    @Printed var bar: Bool = false
}

func test(_ value: Foo = Foo()) {
   var m = value
   m.bar = true. // will call didSet in @printed struct
}
...