ios - 通用对象作为 HandyJSON 的参数

标签 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
}

我收到这条消息: 静态成员“反序列化”不能用于类型“[T.Type]”的实例。 我想知道我做错了什么以及如何修复它,同时保持将通用对象类作为参数传递的相同实现。

谢谢..

最佳答案

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

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

关于ios - 通用对象作为 HandyJSON 的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826873/

相关文章:

swift - 如何比较两个实际上符合 `Any` 的 `Equatable` 对象

swift - TabView 上的元素删除后不消失

ios - 获取用户属性 AWS Amplify iOS SDK

java - 子类化集合并使用泛型

java - 如何更改子类中字段的通用类型?

iphone - 如何为 iPhone 5 屏幕分辨率迁移应用程序?

Iphone 应用程序在 IOS 5.1 上运行良好,在 IOS 6 上运行不正常

java - 如何使用 Java 泛型避免未经检查的转换警告

ios - 用户信息中带有自定义对象的 UNMutableNotificationContent 使应用程序崩溃

iphone - 在 iOs 中具有多个异步 NSURLConnection 的 UIProgressView