私はAlamofire 4.4を使用します。 AlamofireのcompletionHandler内のUIを更新しますが、関数が終了するまで更新されません。私はsleep(10)
を使ってテストしています。 UI更新は10秒後にのみ行われます。しかし、私は最初に更新する必要があります。Alamofire completionHandler更新UIは機能が終了したときにのみ動作します
まもなく。私はcompletionHandlerでいくつかの操作を実行し、それは時間がかかります。約10秒。私はプロセスの完了率を示したい。しかし、UIは更新されません。例:プロセスラベルの先頭には、「終了」の中央にある「処理中」の「開始」に名前を変更します。しかし、ラベルは「処理中」に変わります。ここで
は私のコードです:私のラベルのテキストの変更はわずか10秒後に "名前の変更" する
view.backgroundColor = UIColor.white
label.frame = CGRect(x: 50, y: 50, width: 100, height: 20)
label.text = "Begin"
label.textColor = UIColor.black
view.addSubview(label)
Alamofire.request("http://google.com").responseData(completionHandler: {
res in
if let stCode = res.response?.statusCode {
if stCode == 200 {
self.label.text = "Rename"
print("Rename")
// Here I do some processing. put sleep for test
sleep(10)
print("Should be modified 10 seconds earlier")
}
}
})
:
これは私のViewController's viewDidLoad()
機能です。私は最初に変更する必要があります。
マイログ:
Rename (I need it to change here.)
Should be modified 10 seconds earlier (Here label changes after 10 seconds)
あなたの質問は不明です。 –
@SakirSherasiya私は私の質問を編集しました。あなたが理解していないことを教えてください –
@BegmuhammetKakabayev 10秒後に何か操作をしたいですか? @SahilManchandaまもなく –