我有一個實體(Order)與實體Item有多對多的關係,它與實體注有多對多的關係。如果價格更改爲備註或添加了備註,則關聯訂單的'價格'屬性必須更新。核心數據建模問題(如何根據關係的關係更新屬性?)
現在,我的解決方案是讓所有Order對象註冊NSManagedObjectContextDidChange通知,並檢查所有插入/更改的對象,以查看這些對象中的任何一個是否是訂單項目的註釋之一。但是,這樣做效率低下,而且很不方便,導致可以優化的幾個性能問題,但我開始意識到我的解決方案是有問題的,不一定是問題。
那麼,最好的辦法是什麼?
編輯:爲了回答Rog帶來的問題:我正在尋找將更改傳播到模型數據,這些數據由視圖控制器通過KVO觀察到。我注意到的問題是,如果與某個項目相關的Note的價格被調整,則無法在Core Data中對此進行說明。如果我在物品上使用keyPathsForAffectingPrice,並返回「註釋」,那麼只會考慮是否插入/刪除了註釋,而不是在調整註釋價格時。
如果這不是核心數據,我會寫我自己的存取做筆記的價格,只是說[self.item willChangeValueForKey:@ 「價格」],self.price = X,[self.item didChangeValueForKey:@ 「價錢」];但這是不可能的,因爲我不能在Core Data中執行自定義訪問器,對吧?
問題修改,以滿足您的問題 - 有一個FRC。 – refulgentis 2011-02-28 23:24:18