你必須每個線程有一個,但除此之外......你應該有更多?多吃有害嗎?例如,我很想構建我的應用程序,每個選項卡都有一個NSManagedObjectContext,處理出現在特定選項卡上的整體持久性存儲的子集。每個線程有多個NSManagedObjectContext實例可以嗎?
這樣,我可以讓選項卡GUI在「其」上下文中聽取notificataions,並忽略其他人。異步網絡調用一次只會更改一個選項卡的上下文。
(注:不使用NSFetchController因爲在課前的iOS 3.2主要錯誤的,這是一個3.0+應用程序)
有我誤解了如何使用的NSManagedObjectContext?如果是這樣,任何人都可以指出使用額外的NSManagedObjectContext實例的「好」/「壞」原因?
更新:這對分立的上下文工作正常,但當我試圖推斷在一組數據上使用多個上下文來處理臨時更改時,這一切都變得非常糟糕:c.f.關於該主題的問題:How to make/use temporary NSManagedObjects?
經過一番實驗後,我注意到蘋果已經「忘記」在其API中包含幾個關鍵方法。例如你如何合併上下文?答:除非產生「假」NSNotifications,否則你不能。笨。我不確定蘋果是否希望你避免NSManagedContext(看起來很奇怪),或者只是沒有考慮到他們自己的API設計的後果。 – Adam 2010-06-30 01:25:29