1

每當我在應用程序的第一個選項卡中對對象進行更改時,更新會自動在選項卡2中進行調整,因爲它使用fetchedResultsController。現在我有第三個標籤也應該更新自己,但我該怎麼做?如何觀察託管對象上下文

我只在第三個選項卡中有一個nsmangedObjectContext來獲取適當的數據。每當這種情況下的對象發生變化時,我怎樣才能收到通知?

我也在爲如何讓數據讀取更有效率而煩惱,因爲選項卡2和3使用同一組數據。我目前正在製表3中的另一個獲取,以獲得與製表符2相同的數據。我不知道如何在不干擾fetchedresultscontroller的情況下使用tab2中的數據。

關於這個問題的信息將非常感謝!

回答

0

如果您的表格視圖密切相關,那麼您可以只有一個爲其提供數據的UITableViewDataSource,並讓它管理NSFetchedResultsController。從你的描述來看,這種情況似乎很可能。

如果tableviews不是很相似,使得具有單一UITableViewDataSource會造成過度if()邏輯,然後移動NSFetchedResultsController成一個單獨的模型對象,並張貼NSNotifications當接收委託回調。然後您的UITableViewDataSources可以觀察這些通知,以便在屏幕上進行更新。

+0

感謝您的信息!但是我的第三個標籤不是表格視圖。所以我正在處理一個tableview(標籤2)和一個常規視圖(標籤3)。我應該怎麼做呢.. – Ton 2009-09-06 17:10:21

+0

在這種情況下,如果你在設計MVC時沒有很強的背景,上面的後一種解決方案可能會更容易理解。如果我這樣做了,我可能會創建一個數據對象作爲這兩個視圖的數據源,但這需要爲第二個視圖設計一個數據源協議,並將tableview控制器與tableview數據源分開。這些都不難,但即使如此,我可能會建議使用上面的第二個設計,因爲它更接近Apple示例代碼。 – 2009-09-06 23:35:50