我有一个正常运行的应用程序的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还是很陌生,只继承了这个项目,所以我不确定解决这个问题应该采取什么方法。我浏览了其他问题,但找不到适合我的解决方案。
答案 0 :(得分:0)
通用参数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]
}