我有一個快速的(或一般的iOS)問題1個單一入口已取得的結果控制器:使用在CoreData
我的情景:
我有了化身(除其他事項外的表)在每個單元格中。每個頭像都有一個存在(可用/不可用)。每個單元中其他內容的數據源不受CoreData支持(這是一個限制),並且與用戶(CoreData中的是)沒有關係,該用戶提供了頭像照片和呈現。
因此,我將我的頭像視爲一個需要用戶,然後呈現用戶的照片和呈現的視圖。當用戶(在CoreData中)的狀態變化時,需要通知該視圖,以便它可以更新化身上的狀態指示符。 (不要擔心我的代碼結構,我使用MVC,但是我簡化了一些東西以避免對我的場景做長時間描述)。
我的問題:
是不是不好用NSFetchedResultsController
(FRC)觀察CoreData 1個單一入口?是否還有其他更適合於此的內容(因爲NSFetchedResultsController
非常適合用於表格視圖)?
基本上我會做的是讓頭像使用FRC來偵聽CoreData中用戶的變化。因此每個單元格中的每個化身都會有一個觀察1個用戶的FRC。這樣使用FRC似乎很奇怪。 (不要擔心細胞重複使用,當化身處於細胞再利用狀態時,所有的FRC都會被處置)。
其他選項:
我就可以建立在我的用戶的觀察者(委託)CoreData存儲管理器對象偵聽更改爲特定用戶(存儲管理器用於更新CoreData的條目因此對CoreData用戶實體的所有更新都是這樣),然後當觀察者聽到更改時,它可以通知其與該用戶關聯的代表(這將是頭像)。但這基本上就像製作我自己的FRC一樣。如果表格中的單元重用會變得複雜(因爲每個化身都在表格中的一個單元格中),因爲我經常想要註冊/取消註冊代表。
我能聽用戶存儲的MOC的任何通知有關變更(如NSManagedObjectContextObjectsDidChange
),但我會得到每用戶更改,並進行篩選。再次,我覺得這與重新實現FRC很相似,但可能效率較低,而且我也可能會遇到單元重用的複雜性。
摘要:
我只是想的最佳方式的意見,聽取更改數據庫中的一個獨特的(用戶ID)項。 FRC是最好的方式,還是有更好的方法?