use*_*173 12 encoder swift swift4 xcode9 codable
我收到以下错误:
Generic parameter 'T' could not be inferred 
在线: let data = try encoder.encode(obj)
这是代码
import Foundation
struct User: Codable {
    var firstName: String
    var lastName: String
}
let u1 = User(firstName: "Ann", lastName: "A")
let u2 = User(firstName: "Ben", lastName: "B")
let u3 = User(firstName: "Charlie", lastName: "C")
let u4 = User(firstName: "David", lastName: "D")
let a = [u1, u2, u3, u4]
var ret = [[String: Any]]()
for i in 0..<a.count {
        let param = [
            "a" : a[i],
            "b" : 45
            ] as [String : Any]
    ret.append(param)
}
let obj = ["obj": ret]
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(obj) // This line produces an error
print(String(data: data, encoding: .utf8)!)
我究竟做错了什么?
Cod*_*ent 33
该消息具有误导性,真正的错误是obj类型[String: Any],不符合,Codable因为Any没有.
当你想到它时,Any永远不能顺应Codable.当Swift可以是整数,字符串或对象时,Swift会用什么来存储JSON实体?您应该定义一个适当的结构来保存您的数据.
| 归档时间: | 
 | 
| 查看次数: | 6929 次 | 
| 最近记录: |