私はSwift 3の新機能です。私はAPIでGETリクエストをしなければなりません。私は非同期関数を使用するAlamofireを使用しています。スレッド1:signal SIGABRT alamofire
私は私のAndroidアプリの上に正確に同じ操作を行い、そしてGETはJSONデータ
これは迅速で私のコードで返します。「RES =応答を
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
}
をしかし、私はラインに問題があります.result.value "私にエラーが表示されます:スレッド1:シグナルSIGABRT
私は本当に問題がどこから来ているのか分かりません。「同期」機能を実行するのはかなり難しかったでしょう違う。
私の目的は、返された変数に要求の結果を格納することです。誰でも助けることができますか?
私はループ内で宣言する変数を返すことはできますか?他の場所で宣言するとスレッドエラーが発生する –
私は通常クラスプロパティを宣言します。 '' 'var result:JSON = []' ''以下では '' '' 'su.(' let value) ''の場合に '' 'self.results = JSON(value)' 'を追加するだけです。後でそれを使用してください。しかし、これには '' SwiftyJSON'''が必要です。 – Nedim
しかし、非同期なので、私は印刷後に要求が終了するので、私は変数を格納できません。どのようにセマフォを設定しますか?多分何か他に? –