私はプログラミング上、もちろん迅速です。私はどのように私のviewDidLoadに私の要求応答を返信してそこに使うことができるのだろうと思っています。 、私はalamofireを使用しています。jsonはswiftyJSONです。 私がやろうとしているのは、タイトルと画像のURLを含むサーバーからデータ(JSON)を取得することです。その後、私は画像のURLから画像を取得しようとしています。 viewDidLadの 、私はGetメソッドである関数を呼び出します。 getDataでviewDidLoadメソッドへの非同期要求の返信方法
override func viewDidLoad() {
super.viewDidLoad()
getData()
//use myStruct
()私はこれを行う:
func getData()
{
Alamofire.request(.GET,"heregoesurl")
.responseJSON { response in
if let Json = response.result.value {
let json = JSON(Json)
for (_,subJson):(String, JSON) in json {
//get image url
//pass image url to imageGet() method
//add image to an array of myStruct
}
}
}
}
をしてimageGet()メソッドで:
func getImages(url:String,type:String)
{
Alamofire.request(.GET, url)
.responseImage { response in
if let image = response.result.value {
//add image to myStruct
}
}
}
問題は、リクエストの非同期な性質のものであり、体mystructではありませんviewDidLoadで準備が整いました。私はgetData()メソッドのためのcompletionHandlerを使用し、それは正常に動作します。しかし、私はまだイメージを持っていないと私はちょうどそこにイメージのURLを持っています。私は何をしなければならないのか分かりません。
このようなことを行うための助けがあれば幸いです。
チェック[この](http://stackoverflow.com/a/を38417602/5654848)。私は補完ハンドラの使い方について説明しました。あなたは正しく使用していません。 – Dershowitz123
@ Dershowitz123実際に私は投稿コードで補完を使用していませんでした。私はそれを使用することを意味しましたが、私が投稿したものでは私はそれらを使用しませんでした。私の本当の質問は、私は別のURLを持つ画像を取得し、私がgetData()補完ハンドラを使用している間にそれらを使用することです。 –
はカスタム構造体myStructですか? getData()を呼び出すためだけにinitを使用できますか? –