加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 02:29:29 所属栏目:百科 来源:网络整理
导读:我收到以下错误: 无法推断出通用参数“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(firstNam
我收到以下错误:

无法推断出通用参数“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实体?您应该定义一个适当的结构来保存您的数据.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读