-5
が、私は以下のような単純なwhileループを使用すると、私のアプリのUIがフリーズする一方使用:問題ループ
再びfunc viewDidLoad(){
super.viewDidLoad()
while(true){
print(CheckDB());
}
}
を、1つを持つプログラムは、UIがフリーズするということですが、それは出力んデータ。私はそれを非同期にしようとすると、UIがフリーズせず、データはまだ印刷されていますが、問題は現在UI内にあるスライダを調整しても、番号を印刷するときには何もしません。その時点でUIは機能していますが、それは文字通りUIだけで何もありません。
func viewDidLoad(){
DispatchQueue.global(qos: .default).async {
while(true){
super.viewDidLoad()
print(CheckDB());
}
}
だから私の質問は、今、私はアプリの他の部分をめちゃくちゃにすることなく、ラベルのようないくつかのUI要素を更新し、バックグラウンドで実行されている一定のループを持っていないか、でしょうか?
while(true){super.viewDidLoad()...}これまでに決して行ったことはありません。 – luk2302
UIをメインスレッドに更新するコードを送信しますが、これは理論的な例であり、このように真剣にデータベースをポーリングしないことを願っています。 – vadian
スライダーを調整するときにUIを更新しようとしている場合は、プロトコル/デリゲートを使用して、スライダの移動時にUIに更新を通知します。 n秒ごとにUIを更新しようとしている場合は、NSTimerを使用して、パスしたいと思っても数秒後にリフレッシュメソッドを呼び出すことができます。 – user3353890