2016-04-28 15 views
6

में प्रकार का एक तर्क सूची के साथ विधि आह्वान नहीं कर सकता मैं एक समारोहतेज

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 
} 

यह मुझे त्रुटि दिखा सकते हैं की तरह कहते हैं:

"Cannot invoke 'Method' with an argument list"

जबकि यह

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

जहां

Class CarModel: Mappable 

जहां पहली कॉल के साथ समस्या यह है निम्नलिखित के रूप में ठीक काम कर रहा है

+0

अनुरूप होना चाहिए आप कर सकते हैं अनुरोध के लिए कक्षा दिखाओ ऑब्जेक्ट? – Ted

उत्तर

0

requestObject.responseModel mappable को

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

इसे मैपेबल स्ट्रक्चर RequestObject { अनुरोध के रूप में परिभाषित किया गया है नाम: अनुरोधनाम पैरामीटर संरचना दें: ऐरे <पैरामीटरके>? इनपुट पैरामीटर: शब्दकोश <पैरामीटर, AnyObject>? अनुरोध करने दें टाइप: अनुरोध प्रकार अनुरोध करें यूआरएल: स्ट्रिंग कैचवेल को दें: कैचलेवल प्रतिक्रिया दें मॉडल: मैप्बल पैरामीटर एन्कोडिंग: पैरामीटर एन्कोडिंग} – AbBarjoud