-1

我有一个应用程序的 git 存储库,该应用程序运行正常并且在 iTunes 上可用。我最近想为其添加一些更新并将项目导入 xCode 10。当我尝试构建解决方案时,我收到错误“无法推断通用参数'T'”

我试图更新所有正在使用的 pod。

这是有错误的代码

static func toJSON<T>(_ data: [T]) -> NSArray {
    let encoded = try! JSONEncoder().encode(data)
    let jsonObject = try! JSONSerialization.jsonObject(with: encoded,
                                                       options: []) as! NSArray
    return jsonObject
}

并且错误似乎出现在这一行

let encoded = try! JSONEncoder().encode(data)

我对 Swift 很陌生,只继承了这个项目,所以我不确定我应该用什么方法来解决这个问题。我查看了其他问题,但找不到适合我的解决方案。

4

1 回答 1

0

泛型参数T必须被限制Encodable并请使用更快捷的代码和throw潜在的错误

static func toJSON<T : Encodable>(_ data: [T]) throws -> [Any] {
    let encoded = try JSONEncoder().encode(data)
    return try JSONSerialization.jsonObject(with: encoded) as! [Any]
}
于 2019-08-23T11:07:52.223 回答