2012-05-07 76 views
1

我可以刷新任何非CoreData加載的tableView通過調用[nameoftableView reloadData];刷新CoreData表?

但是,當我把這個在我的CoreData加載TVC不重新加載表。 這是否工作不同?

它會更新它的內容,如果我停止並再次啓動應用程序 - 以便重新加載數據庫,所以我知道它有更新的內容。

乾杯傑夫

+0

刷新從核心數據填充的UITableView時,reloadData適用於我。必須有其他事情正在進行。也許發佈你調用reloadData的方法? – geraldWilliam

+0

如果您使用NSFetchedResultsController,請嘗試發送executeFetch:到您的fetchedResultsController實例。它很可能已經緩存了原始結果,並且需要重新獲取新的結果。 – timthetoolman

+0

嘗試重新加載TableView在viewWillAppear()和重新加載TableView前從CoreData獲取 – Bala

回答

4

沒有細節是很難知道是怎麼回事,但如果你使用一個簡單的NSFetchRequest我認爲你需要執行查詢並再次呼籲reloadData

一個簡單的音符

我建議你去與核心數據和UITableView小號打交道時使用NSFetchedResultsControllerraywenderlich有關於如何在Core Data中使用該類的教程。 首先它可以讓你處理大量顯示在UITableView中的數據。特別是,如果您使用的NSFetchRequest用於設置批處理大小,則將以「批處理」方式檢索數據。例如,前10.然後,如果您滾動其他10等...

此外,您可以免費使用NSFetchedResultsControllerDelegate類(Reference NSFetchedResultsControllerDelegate)處理數據更改(更新,插入或刪除)。

希望它有幫助。