我正在使用 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
}
我收到这条消息: 静态成员“反序列化”不能用于类型“[T.Type]”的实例。 我想知道我做错了什么以及如何修复它,同时保持将通用对象类作为参数传递的相同实现。
谢谢..
最佳答案
只需使用泛型类型参数 T
而不是要将参数类型传递到的变量。
if let obj = [T].deserialize(from: JSONString) { ... }
关于ios - 通用对象作为 HandyJSON 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826873/