我有一個後臺線程執行後臺更新,設置/覆蓋幾種NSManagedObjects上的字段。所有子類都包含一個lastModified屬性,它在被後臺任務處理時總是得到更新。核心數據和NSFetchedResultsController:忽略控制器中的字段DidChangeContent
我的問題是,當我這樣做時,所有被後臺線程擊中的實體也會觸發controllerWillChangeContent/controllerDidChangeContent。即使沒有真正改變。
如果我打了一個二傳(例如使用一個NSString但內容並沒有真正改變,將它仍然觸發更新或者是CoreDate聰明地坐視不理?
是否有可能以某種方式紀念通知更改resultsControllers時不包括屬性?
我想這一點,但它似乎'setPrimitiveValue'也防止了持續的價值? – 2014-09-29 09:51:21
我的意思是resultsControllers沒有被通知lastModified的變化,或者有可能區分更新,所以我可以過濾出不重要的變化。這樣我可以防止更新每個單元格。 – 2014-09-29 10:43:40
如果保存其managedobjectcontext,setPrimitiveValue仍應保留這些值。我只是使用setprimitivevalue創建一個特殊的setter方法,後臺線程使用setprimitivevalue進行更新而不觸發KVO。 – devgeek 2014-09-29 17:30:46