2011-09-13 67 views
1

我通過NSFetchedResultsController管理UITableView,但是NSFetchedResultsController加載數據時,所有UI都被阻塞(我無法做任何事情,例如點擊,滾動...)。有沒有解決方案可以解決這個問題?謝謝!!!UI阻塞,而NSFetchedResultsController加載數據

+0

可能是你可以減少批量 – Robin

+0

現在批量大小是20,那麼高嗎? –

回答

1

有一兩件事使你的應用程序的用戶友好時,要記住這一點很重要的是:

如果您有任何密集型,非UI相關的主要 主題計算時,你正在做的事情錯誤!

使得主線程UI只將確保該UI絕不會結冰,或者你描述它,得到「封殺」。因此,您的NSFetchedResultsController應該在另一個線程上,以確保不會發生這種情況。

NSOperation's絕對是解決您所描述問題的方法。 Here是一個教程和示例代碼,它將解釋類似的情況,以及如何解決它。

希望有助於!

+0

這似乎是導致其他問題。 –

+0

我從網上下載數據(如果需要的話),然後從核心數據加載數據到UITableView –

+0

好極了!所以現在,你所要做的就是將所有這些功能放到一個方法中,然後把這個方法包裝在一個'NSOperation'中,然後在完成時調用'reloadData',並且你的'UI'不會鎖定! – msgambel