Ton*_*Lin 2 optional ios swift swift4 codable
let jsonString = """
{
"name":1,
"gender":"male",
}
"""
struct Person: Codable {
var name: String
var gender: String
public init(from decoder: Decoder) throws {
do {
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decode(String.self, forKey: .name)
gender = try container.decode(String.self, forKey: .gender)
} catch {
print("XXXXXX \(error)")
}
}
}
Run Code Online (Sandbox Code Playgroud)
从上面的代码,它不会编译,因为它抱怨,
从初始化程序返回而不初始化所有存储的属性.
我想抛出一些错误,但如果没有,我该怎么办呢
您不需要输入do-catch,init(from decoder: Decoder)因为它已标记为throws.所以这样做:
public init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
name = try container.decode(String.self, forKey: .name)
gender = try container.decode(String.self, forKey: .gender)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1184 次 |
| 最近记录: |