我對這個問題失去了主意。NSFetchedResultsChangeInsert被1次插入與不同的對象ID調用兩次
所以我有一個核心數據建立在做這樣我的iOS應用: http://www.cocoanetics.com/2012/07/multi-context-coredata/
然後我通過創建臨時MOC(如在博客中解釋)插入一個對象,並執行保存在所有3個臨近關係在performBlock:方法中。
在視圖控制器中我有一個NSFetchedResultsController
,它得到通知我確實插入了一個新的對象。問題是NSFetchedResultsChangeInsert
被激發兩次,每次通過低谷的對象都有不同的objectID
(它也是內存中的一個不同的對象實例)。會發生什麼,然後我有2行插入我的表視圖中,但不是SQL數據庫只有一個新的。當我滾動到表視圖的底部時,它當然會崩潰。
如果我還對該對象執行了一些更新,我只會調用一次NSFetchedResultsChangeUpdate
,並調用第二個NSFetchedResultsChangeInsert
調用中傳遞的objectID。
第一個ID是這樣的:
<x-coredata:///ReceivedMessage/t605BB9A7-A04E-4B89-B568-65B12E8C259A2>
第二(和所有隨之而來的)是這樣的:
<x-coredata://02A917C5-850F-4C67-B8E4-1C5790CF3919/ReceivedMessage/p28>
有什麼事情這是?我錯過了一些明顯的東西嗎?
PS:我還檢查通知是否來自相同的上下文,線程等。