我收到以下错误:
无法推断出通用参数“T”
在线:让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)!)
我究竟做错了什么?
该消息具有误导性,真正的错误是obj的类型为[String:Any],它不符合Codable,因为Any没有.
当你想到它时,Any永远不会符合Codable.当Swift可以是整数,字符串或对象时,Swift会用什么来存储JSON实体?您应该定义一个适当的结构来保存您的数据.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。