2011-01-28 55 views
2

我有一個使用coredata的應用程序。數據下載發生在A類中.Coredata更新/保存/刪除位於SharedDelegate(B)中。委託人在A中啓動下載並實施其協議以在下載完成時得到通知,以便委託人可以更新其在數據庫中的數據。Coredata更新後一致更新UITableview

現在,在發生這種情況之後,我希望具有UITableview的C類更新其行和單元格,以便顯示新內容。

我該如何正確通知C,它可以更新其表?可能發生的錯誤有哪些?

下載和更新當然是異步發生的,到目前爲止,只有在所有下載完成後我纔會更新....我想分割任務,這樣說。

任何提示?

回答

6

兩個選項:

  1. 使用的NSFetchedResultsController爲表視圖的數據源。 NSFetchedResultsController的文檔包含許多代碼,您可以將&粘貼複製到您的應用中,以便在託管對象上下文發生更改時管理表視圖更新。

  2. 註冊爲NSManagedObjectContextObjectsDidChangeNotification。在您的通知方法中,處理案例NSInsertedObjectsKey,NSUpdatedObjectsKeyNSDeletedObjectsKey並相應地更新您的表格視圖。

+0

這聽起來很有希望,會同時嘗試。感謝您的快速回復! – Icky 2011-01-28 14:51:52

1

使用NSNotificationCenter。設置C類以偵聽通知並相應地重新加載數據。當SharedDelegate B更新數據時,發佈通知。