我下面有一个静态函数,将执行一个
我的问题是如何调用它?
如果我尝试像下面这样调用它,就会出现“无法明确特化通用函数”的错误。
GET
请求,然后尝试将数据解析为任何 <T>
。public static func get<T>(url: NSURL, paramaters: [String : AnyObject]?, paramaterEncoding: ParameterEncoding, compleation:(response: Response<T>) -> Void)
我的问题是如何调用它?
如果我尝试像下面这样调用它,就会出现“无法明确特化通用函数”的错误。
let url = NSURL(string: "http://g.co")!
typealias JsonResponse = [String : AnyObject]
Notwork.get<JsonResponse>(url, paramaters: nil, paramaterEncoding: ParameterEncoding.json) { (response) in }
从下面的示例可以看出,这样的函数通常从它返回的变量中获取其类型。
let result: Response<JsonResponse> = Notwork.get(url, paramaters: nil, paramaterEncoding: .json)
然而,由于结果以闭包形式返回,我该如何指定<T>
是什么?
谢谢。
编辑
以下是一些示例代码,描述了同样的问题。
import Foundation
struct My {
static func function<T>(compleation:(response: T) -> Void) {
let apiResponse = ["some" : "value"]
guard let value = apiResponse as? T else {
return
}
compleation(response: value)
}
}
//Gives error "Generic parameter 'T' could not be inferred"
My.function { (response) in
}
get
函数的实现。 - R Menke