作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
这是我的代码。但我不知道将值设置为什么。它必须手动完成,因为实际结构比这个例子稍微复杂一些。
有什么帮助吗?
struct Something: Decodable {
value: [Int]
enum CodingKeys: String, CodingKeys {
case value
}
init (from decoder :Decoder) {
let container = try decoder.container(keyedBy: CodingKeys.self)
value = ??? // < --- what do i put here?
}
}
最佳答案
由于一些错误/拼写错误,您的代码无法编译。
解码Int
数组
struct Something: Decodable {
var value: [Int]
enum CodingKeys: String, CodingKey {
case value
}
init (from decoder :Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
value = try container.decode([Int].self, forKey: .value)
}
}
但如果问题中的示例代码表示整个结构,则可以简化为
struct Something: Decodable {
let value: [Int]
}
因为可以推断出初始化器和CodingKeys
。
关于swift - 如何在 swift 4 Codable 中手动解码数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44857326/
我是一名优秀的程序员,十分优秀!