Ich bin sehr neu zu Swift 3, und ich muss eine GET-Anfrage auf meiner API. Ich benutze Alamofire, das asynchrone Funktionen verwendet.Thread 1: Signal SIGABRT alamofire
ich genau das gleiche auf meinem Android-App und die GET liefert Daten JSON
Dies ist mein Code in swift:
func getValueJSON() -> JSON {
var res = JSON({})
let myGroup = DispatchGroup()
myGroup.enter()
Alamofire.request(url_).responseJSON { response in
res = response.result.value as! JSON
print("first result", res)
myGroup.leave()
}
myGroup.notify(queue: .main) {
print("Finished all requests.", res)
}
print("second result", res)
return res
}
Aber ich habe ein Problem mit der Zeile „res = Antwort .result.value "Was gibt mir den Fehler: Thread 1: Signal SIGABRT
Ich verstehe wirklich nicht, wo das Problem herkommt, es war ziemlich schwer, eine" synchrone "Funktion zu tun, vielleicht mache ich es falsch.
Mein Ziel ist es, das Ergebnis der Anfrage in einer Variablen zu speichern, die ich zurückgeben. Jeder kann helfen?
Es scheint in Ordnung, aber wie kann ich eine Variable zurückgeben, die ich in der Schleife deklariere? Wenn ich es an einem anderen Ort erkläre, habe ich Threadfehler –
Ich erkläre normalerweise eine Klasseneigenschaft. '' 'var results: JSON = []' '' und darunter füge ich '' 'self.results = JSON (Wert)' '' in '' .success (let value) '' 'case hinzu, damit kann ich später benutze es. Aber das erfordert '' 'SwiftyJSON'''. – Nedim
Aber weil es asynchron ist, kann ich die Variable nicht speichern, da die Anfrage nach dem Druckvorgang endet. Wie würdest du deine Semaphore einstellen? Oder etwas anderes vielleicht? –