如何获得正确的'类型'在迅速

时间:2016-06-04 22:53:31

标签: swift alamofire

这是我的代码:每个请求函数使用相同的代码片段' 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;。

the documents says

  

类,结构或枚举类型的元类型是该类型的名称,后跟.Type。

所以我应该怎么做..

1 个答案:

答案 0 :(得分:0)

我没有使用Alamo火,但您可以使用T代替T.Type吗?

T.Type不会给出类型本身,而是可以在运行时访问的表示。我想问一下参数classType的用途是什么?在函数的任何给定使用中,T本身在编译时可用并且可用,因此不需要传递它。