2017-11-15 13 views
5
private func makeRequest<T where T:MappableNetwork>(method method: Alamofire.Method, url: String, 
         parameters: [String: AnyObject]?, keyPath: String, handler: NetworkHandler<T>.handlerArray) -> Request { 

    let headers = [ 
     "Authorization": "", 
     ] 

    return Alamofire 
     .request(method, url, parameters: parameters, encoding: .URL, headers: headers) 
     .validate() 
     .responseArray(keyPath: keyPath) { (response: Alamofire.Response<[T], NSError>) in 
      if let error = response.result.error { 
       if let data = response.data { 
        let error = self.getError(data) 
        if error != nil { 
         handler(.Error(error: error!)) 
         return 
        } 
       } 
       handler(.Error(error: error)) 
      } else if let objects = response.result.value { 
       handler(.Success(data: objects)) 
      } 
    } 
} 

मैं 3.x के लिए कोड तेज 2.x बदला है और मैं हो रही त्रुटि प्रकार अभिव्यक्ति अधिक संदर्भ के बिना अस्पष्ट है।स्विफ्ट 3.0: अधिक संदर्भ के बिना अभिव्यक्ति का प्रकार संदिग्ध है?

enter image description here

+0

क्या हैंडलर प्राप्त करने की उम्मीद करता है? आप एक अवधि (।) से शुरू करते हैं और इसे उस मामले में स्वचालित रूप से निर्धारित नहीं किया जा सकता है, अवधि से पहले क्या होना चाहिए? – Yitzchak

+0

ठीक है मुझे तुम्हारा बिंदु मिला। कोशिश करो। धन्यवाद @Yitzchak –

+0

क्या यह काम किया? क्या मैं जवाब पोस्ट कर सकता हूं? हमें क्या याद आ रहा है हमें साझा करें? – Yitzchak

उत्तर

1

त्रुटि आप का उल्लेख आपको बताता है कि संकलक आपके द्वारा दर्ज मूल्य का सही प्रकार निर्धारित नहीं कर सकता।

आप एक अवधि के साथ शुरू कर दिया, कुछ अवधि से पहले किया जाना है। कभी-कभी संकलक आपकी मदद के बिना समझ सकता है। ऐसा नहीं है, इसमें कई विकल्प हैं इसलिए यह संदिग्ध है और यह आपको वास्तव में उस वर्ग का नाम बताने के लिए कहता है जिसका आप मतलब था।

यह दूसरों की मदद करता है, तो आप सटीक वर्ग के नाम है कि याद आ रही थी दूँगा।

संबंधित मुद्दे