Автогенерация для CodingKeys
действительно странная. Объем и доступность этого зависит от того, какие члены у вас есть.
Скажем, у вас просто есть Decodable
. Они компилируются:
struct Decodable: Swift.Decodable {
static var codingKeysType: CodingKeys.Type { CodingKeys.self }
}
struct Decodable: Swift.Decodable {
static func `init`(from decoder: Decoder) throws -> Self {
_ = CodingKeys.self
return self.init()
}
}
… и вы можете собрать их вместе, если добавите private
.
struct Decodable: Swift.Decodable {
private static var codingKeysType: CodingKeys.Type { CodingKeys.self }
static func `init`(from decoder: Decoder) throws -> Self {
_ = CodingKeys.self
return self.init()
}
}
… Но сделайте это func
инициализатором, и опять же, без компиляции.
struct Decodable: Swift.Decodable {
private static var codingKeysType: CodingKeys.Type { CodingKeys.self }
init(from decoder: Decoder) throws {
_ = CodingKeys.self
}
}
Вы можете изменить его на полностью Codable
, а не просто Decodable
…
struct Decodable: Codable {
private static var codingKeysType: CodingKeys.Type { CodingKeys.self }
init(from decoder: Decoder) throws {
_ = CodingKeys.self
}
}
Но тогда вы не сможете использовать CodingKeys
в области видимости, чтобы свойство не компилировалось.
Учитывая, что вам, вероятно, не нужно такое свойство, просто используйте Codable
, сообщите об ошибке Apple, ссылаясь на этот ответ, и, надеюсь, мы все сможем переключиться до Decodable
, когда они это исправят. ?