我使用HandyJSON库将json转换为对象,我创建了一个静态函数,它可以正常工作,这里是代码
static func objectFromJSONstring<T : HandyJSON>(object: T.Type, JSONString : String) -> T? {
if let obj = object.deserialize(from: JSONString) {
return obj
}
return nil
}
但是当我试图对一个对象数组做同样的事情时
static func arrayOfObjectsFromJSONstring<T : HandyJSON>(objt : T.Type, JSONString: String, objectPath: String) -> [T?]? {
if let obj = [objt].deserialize(from: JSONString) {
return obj
}
return nil
}
我收到此消息: 静态成员&#39;反序列化&#39;不能在类型&#39; [T.Type]&#39;的实例上使用。 我想知道我做错了什么以及如何修复它,同时保持将通用对象类作为参数传递的相同实现。
谢谢..
答案 0 :(得分:1)
只需使用泛型类型参数T
,而不是传递参数类型的变量。
if let obj = [T].deserialize(from: JSONString) { ... }