2011-07-01 59 views
0

i 使用隊列和resultscontroller的組合來更新和顯示一些coredata對象。我有一些例外和問題(請參閱此線程NSOperationQueue and NSFetchedResultsController)。經過長時間的研究,我發現NSFetchedResultsController是問題,我決定爲uitableview編寫我自己的更新邏輯。手動更新UITableView(替換NSFetchedResultsController邏輯)

我的新strategie是: - 當我的觀點負載我取從核心數據的所有對象到一個數組並顯示它們 - 20秒後,我嘗試加載從網絡和更新的核心數據的新數據(內第二的線程/或nsoperation)這個線程使用他自己的objectcontext ...我的主要上下文將忽略任何更改! - 之後,我再次獲取我的對象,但在臨時陣列 - 現在我需要更新我的uitableview,但我不知道如何...我必須比較兩個陣列,並做更新,刪除或插入單元格..

對於我來說這對插入和刪除有很好的動畫很重要。我的情況下,所有的對象只在一個部分!但有可能我有一個「汽車」和「酒店」=> 2節但不同的對象(2個數據源陣列)的視圖

有人可以請給我一個更新uitableview的好例子。

我使用:

- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath 

我需要更換NSFetchedResultsController邏輯。

非常感謝!

回答

0

這可能是過於簡單的答案,但我已經使用

[self.tableView reloadData]; 

,伸進 - (空)viewWillAppear中:(BOOL)動畫方法。

+0

viewWillAppear只被調用一次...並且reloadData不動畫插入和刪除:( – user547064