这是我的代码:每个请求函数使用相同的代码片段' Alamofire.request ........'
import Alamofire
import AlamofireObjectMapper
//so many functions like this to wrapper different json 'RecommadnBannerObject','RecommadnPostObject'...
func requestDataForBanner(completionHandler: (banner: Result<RecommadnBannerObject>) -> Void) {
Alamofire.request(NGAApi.Router.Bannerrecm).responseObject { (response:Response<RecommadnBannerObject, NSError>) in
guard let model = response.result.value else {
print("Error RecommadnBannerObject")
completionHandler(banner: Result.Failure(response.result.error!))
return
}
completionHandler(banner: Result.Success(model) )
}
}
所以我定义了一个函数
static func sendRequestWithRouter<T>(router:URLRequestConvertible, classType: T.Type, completionHandler: (items: Result<T> ) -> Void ){
Alamofire.request(router).responseObject { (response:Response<classType, NSError>->Void) in
//do something
}
}
但是xcode告诉我&class; 39不是类型&#39;。
类,结构或枚举类型的元类型是该类型的名称,后跟.Type。
所以我应该怎么做..
答案 0 :(得分:0)
我没有使用Alamo火,但您可以使用T
代替T.Type
吗?
T.Type
不会给出类型本身,而是可以在运行时访问的表示。我想问一下参数classType的用途是什么?在函数的任何给定使用中,T本身在编译时可用并且可用,因此不需要传递它。