2016-04-28 10 views
6

Mam funkcjinie może powoływać się metodę z listy argumentów typu 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) 
       } 
      } 
} 

kiedy nazwać jak

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

gdzie

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 
} 

dać mi błąd:

"Cannot invoke 'Method' with an argument list"

podczas jego pracy w porządku, po

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

gdzie

Class CarModel: Mappable 

gdzie jest problem z pierwszego zaproszenia

+0

można pokaż klasę dla requestObject? – Ted

Odpowiedz

0

requestObject.responseModel powinny być zgodne z odwzorowywalne

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

jest zdefiniowany jako Mappable struct RequestObject { let requestName: RequestName let parametersStructure: Array ? let inputParameters: Dictionary ? let requestType: RequestType let requestUrl: String let cachLevel: CachLevel niech odpowiedźModel: Mappable niech parameterEncoding: ParameterEncoding} – AbBarjoud

Powiązane problemy