2017-11-15 3 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)) 
      } 
    } 
} 

Ich konvertierte Code swift 2.x zu 3.x und ich bekomme Fehler Art Ausdruck ist mehrdeutig ohne mehr Kontext. Swift 3.0: Art des Ausdrucks ist mehrdeutig ohne mehr Kontext?

enter image description here

+0

Was erwartet der HF? Sie beginnen mit einem Punkt (.) Und es kann in diesem Fall nicht automatisch bestimmt werden, was vor dem Zeitraum sein soll. – Yitzchak

+0

ok Ich habe deinen Standpunkt verstanden. lass es versuchen. Danke @Yitzchak –

+0

Hat es funktioniert? Kann ich die Antwort posten? Teilen Sie uns genau, was fehlte? – Yitzchak

Antwort

1

Der Fehler Sie sagt Ihnen erwähnt, dass der Compiler den genauen Typ des Wertes nicht bestimmen können Sie eingegeben haben.

Sie haben mit einer Periode begonnen, etwas muss vor der Periode sein. Manchmal kann der Compiler ohne Ihre Hilfe verstehen. Das ist nicht so, es hat mehrere Optionen, also ist es mehrdeutig und es fordert Sie auf, genau den Klassennamen zu sagen, den Sie meinten.

Es hilft anderen, wenn Sie den genauen Klassennamen angeben, der fehlte.

Verwandte Themen