不知何時NSFetchedResultsChangeUpdate
更改類型controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
方法通過?當NSFetchedResultsChangeUpdate更改類型發生?
我已經創建NSFetchedResultsController
非零無效sectionNameKeyPath
和取回請求有sortDescriptor
。添加了匹配獲取請求謂詞的少數對象。然後,我嘗試更改排序屬性和該對象之一的sectionNameKeyPath
屬性。其實它工作得很好:改變對象移動tableView,但每次我收到NSFetchedResultsChangeMove
更改類型!更改該物品的其他道具(不用於排序或部分)並沒有觸發controller:didChangeObject:atIndexPath:forChangeType:newIndexPath:
!
我對NSFetchedResultsChangeUpdate
感興趣的原因是我希望NSFetchedResultsController
在已獲取對象的某些屬性在與NSFetchedResultsController.fetchRequest.predicate
匹配的範圍內變化時通知我。例如,謂詞將某個實體的對象與prop == 1 OR prop == 2
匹配。但我也希望被通知當這樣的匹配對象之一改變它的prop
值從1到2.
只是不想創建兩個NSFetchedResultsController
s,因爲我相信有一個更優雅的方式。 + NSFetchedResultsChangeUpdate
改變類型是唯一一個仍然未被發現的神祕關於NSFetchedResultsController
- 從來沒有抓到它。
當NSFetchedResultsChangeUpdate觸發實體*相關*由NSFetchedResultsController管理的實體更改?例如,假設我正在創建顯示父實體的TVC,並且基於「多對多」關係計數子實體。如果子實體的數量發生變化會發生什麼?這是我必須自己處理的事情嗎? (我猜是)。 – 2011-06-27 06:57:47
來自文檔: 通過以下啓發式報告更改: 關於添加和刪除操作,僅報告添加/刪除的對象。 假設受影響對象之後的所有對象也都被移動,但不會報告這些移動。 ... – bshirley 2011-06-27 17:08:10