3

请阅读问题。

我知道我们不能按照这个链接从 Objective-C 调用 Swift 泛型方法

但就我而言,我有一个用 Objective-C 和 Swift 编写的项目。有一个用 Swift 编写的网络库,具有通用的 GET、POST、DELETE 方法。例如下面是 GET 方法

public func get<T: ResponseDeserializer>(withDeserializer responseDeserializer: T, at relativePath: String? = nil, options: RestOptions = RestOptions(), callback: @escaping (APIResult<T.ResponseType>, HTTPURLResponse?) -> ()) {
    makeCall(relativePath, httpMethod: RestAPIManager.kGetType, payload: nil, responseDeserializer: responseDeserializer, options: options, callback: callback)
}

其中 ResponseDeserializer 是由少数其他类确认的协议。

现在我的问题是,有没有办法从 Objective-C 调用上述方法,或者我应该为 Objective-C 实现一个新的网络库。

我正在寻找您的宝贵指导。

4

1 回答 1

1

不,即使它是一个库,它仍然是用 Swift 编写的。根据您提供的链接,您不能从 Objective-C 调用泛型方法,因为泛型是 Swift 特性。

于 2018-04-18T19:40:33.010 回答