Swift: 无法推断通用参数 'T'

Swift: Generic parameter 'T' could not be inferred

我有一个应用程序的 git 存储库,该应用程序一直在正常工作并且可以在 iTunes 上使用。我最近想对其添加一些更新并将项目导入 xCode 10。当我尝试构建解决方案时,出现错误 "Generic parameter 'T' could not be inferred"

我已尝试更新所有正在使用的 pods。

这是有错误的代码

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 的新手,只是继承了这个项目,所以我不确定我应该采用什么方法来解决这个问题。我查看了其他问题,但找不到适合我的解决方案。

通用参数 T 必须限制为 Encodable,请使用 swiftier 代码和 throw 潜在错误

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