[xcode 9,swift 4]
i测试以下代码:
为什么输出为-1,而不是1?
class A: Codable {
}
class A_a: A {
var a: Int = -1
}
let json = """
{
"a": 1
}
"""
let jsonData = json.data(using: .utf8)!
let obj = try? JSONDecoder().decode(A_a.self, from: jsonData)
obj?.a
代码是special
协议。它的使用受到高度监管。例如,您无法在扩展中确认它。您只能依靠在声明中确认编码的类型。
我认为,这是因为代码生成如何工作。