0

製品 (製品) の配列を反復処理して、ID (product_id) が特定の製品 (p) の ID と一致するかどうかを確認するループがあります。UITextView (outputText) のテキストが更新され、検索の進行状況がユーザーに表示されます。

for (Product *q in products) {
    outputText.text = [NSString stringWithFormat:@"%@\nChecking: %@", outputText.text, q.name];
    NSLog(@"%@\nChecking: %@", outputText.text, q.name);
    if ([q.product_id intValue] == [p.product_id intValue]) {
        outputText.text = [NSString stringWithFormat:@"%@\nMatch: %@", outputText.text, q.name];
        break;
    }
}

問題は、ループが完了するまで UITextView が更新されないように見えることです...おそらくループが処理されている間、UITextView は数秒間空白になりますが、Xcode コンソールでは、nslog テキストがスクロールしているのを見ることができます。突然、UITextView がすべてのテキストを一度に取得します。

ループ中にテキストを UITextView にフラッシュする方法はありますか?

どんな助けでも大歓迎です、

ありがとう

4

1 に答える 1

0
  1. メインスレッドでUIを更新していることを確認してください
  2. 電話[outputText setNeedsDisplay:YES];
于 2012-05-31T22:31:09.020 に答える