Genric对象作为HandyJSON的parmenter

时间:2018-04-14 00:55:40

标签: ios swift generics handyjson

我使用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;的实例上使用。 我想知道我做错了什么以及如何修复它,同时保持将通用对象类作为参数传递的相同实现。

谢谢..

1 个答案:

答案 0 :(得分:1)

只需使用泛型类型参数T,而不是传递参数类型的变量。

if let obj = [T].deserialize(from: JSONString) { ... }