在循环完成之前,文本不会显示在UITextView中

时间:2012-05-31 22:20:46

标签: objective-c ios xcode cocoa uitextview

我有一个循环遍历一系列产品(产品),以查看它们的任何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?

任何帮助非常感谢,

由于

1 个答案:

答案 0 :(得分:0)

  1. 确保您正在更新主线程上的UI
  2. 致电[outputText setNeedsDisplay:YES];