Swift 4:使用Codable`通用参数’T’无法推断

Swift 4:使用Codable`通用参数’T’无法推断,第1张

概述我收到以下错误: 无法推断通用参数“T” 在线:让data = try encoder.encode(obj) 这是代码 import Foundationstruct User: Codable { var firstName: String var lastName: String}let u1 = User(firstName: "Ann", lastName: 我收到以下错误:

无法推断出通用参数“T”

在线:让data = try encoder.encode(obj)

这是代码

import Foundationstruct 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 = .prettyPrintedlet data = try encoder.encode(obj) // This line produces an errorprint(String(data: data,enCoding: .utf8)!)

我究竟做错了什么?

该消息具有误导性,真正的错误是obj的类型为[String:Any],它不符合Codable,因为Any没有.

当你想到它时,Any永远不会符合Codable.当Swift可以是整数,字符串或对象时,Swift会用什么来存储JsON实体?您应该定义一个适当的结构来保存您的数据.

总结

以上是内存溢出为你收集整理的Swift 4:使用Codable`通用参数’T’无法推断全部内容,希望文章能够帮你解决Swift 4:使用Codable`通用参数’T’无法推断所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1089959.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存