【发布时间】:2019-08-14 13:47:27
【问题描述】:
试图使这个类可编码和可解码
import Foundation
class Attribute : Decodable {
struct Att: Decodable {
var number: Int16
var label: String
var comments: String
// Everything from here on is generated for you by the compiler
init(from decoder: Decoder) throws {
let keyedContainer = try decoder.container(keyedBy: CodingKeys.self)
number = try keyedContainer.decode(Int16.self, forKey: .number)
label = try keyedContainer.decode(String.self, forKey: .label)
comments = try keyedContainer.decode(String.self, forKey: .comments)
}
enum CodingKeys: String, CodingKey {
case number
case label
case comments
}
}
}
extension Attribute: Encodable {
public func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(number, forKey: .number)
try container.encode(label, forKey: .label)
try container.encode(comments, forKey: .comments)
}
}
我在这几行有错误
try container.encode(number, forKey: .number)
try container.encode(label, forKey: .label)
try container.encode(comments, forKey: .comments)
与消息
使用未解析的标识符“数字”
使用未解析的标识符“标签”
使用未解析的标识符“cmets”
我该如何解决?
【问题讨论】:
-
extension Attribute.Att: Encodable虽然我不明白你为什么将它嵌套在一个完全没有任何内容的类中...... -
你能详细说明一下吗?我不明白你的意思。该类有 3 个属性。此类将用于编码为 Data 并通过网络传输到另一台计算机。
-
类(可能是无意的)根本没有属性,struct 有...
标签: swift class swift4 codable decodable