簡體   English   中英

無法使用swift中的類型參數列表調用Method

[英]Cannot invoke Method with an argument list of type in swift

我有一個功能

func mapResponse<T:Mappable>(responseObject:Alamofire.Request, 
                   forRequest requestObject:RequestObject,
                              responseType:T,
                                completion:(AnyObject?,String?) -> Void) 
{
    responseObject.responseObject{(response: Response<T, NSError>) in
        if let error = response.result.error {
                       completion(nil,error.description)
                       return
                }
                else {
                    let value:T = response.result.value!
                    self.saveObject(value, forRequest: requestObject,completion: completion)
                }
            }
}

當我稱之為

let model:Mappable = requestObject.responseModel
ResponseMapper.sharedInstance.mapResponse(request, 
                                           forRequest:requestObject,
                                         responseType:model,
                                           completion:completion)

哪里

struct RequestObject { 
    let requestName:RequestName 
    let parametersStructure:Array<ParameterKey>? 
    let inputParameters:Dictionary<Parameter,AnyObject>? 
    let requestType:RequestType 
    let requestUrl:String 
    let cachLevel:CachLevel 
    let responseModel:Mappable 
    let parameterEncoding:ParameterEncoding
}

它給我錯誤:

“無法使用參數列表調用'方法'”

雖然它的工作正常如下

ResponseMapper.sharedInstance.mapResponse(request, 
                                        forRequest:requestObject,       
                                      responseType:CarModel(), 
                                        completion:completion)

哪里

Class CarModel: Mappable

第一次通話的問題在哪里

requestObject.responseModel應符合Mappable

 struct RequestObject<T where T:Mappable> {
    let responseModel:T
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM