ios - 传入要与对象映射器一起使用的类类型

标签 ios swift generics objectmapper

我正在使用 swift 的对象映射器,但遇到了问题。

我有一个 API 类,它调用服务器并使用 json 响应进行响应。

现在,当我调用此 API 类中的 dataTask 函数时,我想传递我希望使用对象映射器将 json 响应映射到的类类型。

func dataTask(method: String, type: AnyClass) {

    Mapper<AnyClass>().map(response)

}

我不确定如何传入要与映射器一起使用的类,我已经尝试过泛型但不确定我是否正确实现了它。

func dataTask<T>(method: String, type: T.type) {
}

如有任何帮助,我们将不胜感激。

谢谢

最佳答案

您需要一个对任何 Mappable 类型都通用的函数。本质上,这将为您使用它的每种类型 T 生成一个版本的 dataTask(method:_:),它将调用适当版本的 Mapper( )

func dataTask<T: Mappable>(method: String, _: T.Type) {
    Mapper<T>().map(response)
}

注意第二个参数,为了使其成为通用类型,需要添加“.Type”。

关于ios - 传入要与对象映射器一起使用的类类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39002240/

相关文章:

ios - 当位置不是一个完整值时,UILabel 的文本会模糊吗?

ios - 从 UITabBarController 场景转到 ViewController 并返回 "hides"UITabBar

swift - 专门的通用协议(protocol)只能作为通用约束

c++ - 在 iOS 上的 C++ 中获取加密安全随机数

iphone - 使用 NSFileManager 的 copyItemAtURL 将图像从 iOS 设备的照片应用程序复制到我自己的应用程序目录

iOS 8 Swift 导航栏标题,按钮未显示在基于选项卡的应用程序中

ios - 使用 OpenGL ES 在 iPhone 上渲染到立方体贴图

iOS 解析土耳其字符的 OrderByAscending 结果错误

具有类型安全的 C# 通用缓存

java - 如何获取像 Collection<SomeObject> 这样的通用集合的 java.lang.Class 实例?