我是一個非常舒適的CoreData用戶。我遇到了一個絕對會讓我失望的問題,弄清楚發生了什麼問題,並且沒有發現它爲什麼會導致我看到的問題。任何人都可以解釋嗎?奇怪的CoreData問題和更奇怪的解決方案。任何想法爲什麼?
好的,我們有一個主要的MOC,它執行大部分'只讀'數據並處理簡單的寫入操作。當我們要做一個大的寫入/導入/等,我們在一個新的線程上分配一個背景MOC,做所有繁重的工作,然後保存它。保存會導致我們的NSManagedObjectContextWillSaveNotification觸發,然後mergeChangesFromContextDidSaveNotification:主MOC上的所有內容都會反映這些更改。相當標準。
所以幾天前在NSManagedObject的一個子類中進行了更改。該更改是在setValue:forKey中調用的。在該方法中沒有進行特殊處理時,我們最初調用[super setValue:forKey:]。它被改爲[self setPrimitateValue:forKey:]和...
保存後mergeChangesFromContextDidSaveNotification:會被調用,但主MOC不會反映更改。所以這有點奇怪。但關閉應用程序,然後再打開它,這些變化會神奇地在那裏。什麼!?!
我知道這是持久存儲保存更改但不是其他MOC的問題。然後,當新的MOC創建新的發射時,一切都再次陷入沉沒。爲什麼?
關於這個主題的任何提示都會幫助大家。
但爲什麼KVO通知很重要?我沒有特別注意任何事情,並且NSManagedObjectContextWillSaveNotification無論如何都在開火。 – beinstein 2010-09-04 16:32:53