我開發的iPad應用存儲有關位置的詳細信息,其中顯示了實現代碼如下。用戶將能夠通過全部(單個部分按字母順序排列),區域明智(每個區域作爲部分)和類型明智(每種類型作爲部分)。我使用單獨的NSFetchedResultController作爲'sectionNameKeyPath'必須在初始化時給出。 我現在有2個問題。花了超過1周的搜索,但我發現創造更多相關問題的解決方案。多NSFetchedResultController單個UITable和CoreData實體設計
1)對於任何更新(例如:設定的位置爲最喜歡)給出NSFetchedResultsChangeDelete代替NSFetchedResultsChangeUpdate。
- 許多論壇上說,它是一個已知的錯誤,如果我們使用多個fetchedResultController
- 只有這樣我才能避免未使用委託方法,並再次每次更改取。所以完全沒有了tableview動畫。
- 並非所有的更新提供了委託回調。 我正確的方式還是有更好的方式,我可以使用單FetchedResultController?
2)的tableview分揀類型不能與當前實體設計有效地利用FetchedResultController。當前設計使用實體位置,類型和區域。 Location to Region是一對多的關係。但是位置到類型在兩個方向上都是多對多的關係。 [我試着上傳實體設計形象,但我的名聲並不允許]
- 類型到位置關係是多到許多在這兩個方向。因爲類型是一組位置實體所以不能給sectionNameKeyPath。所以,我從類型實體獲取並獲得從該位置陣列(套)。
- 所以numberOfRows可以從set.But它沒有下令進行計算。所以我使用比較器對它進行排序。 我不確定這是否是正確的方式,所以我要求你們所有人提供有關此實體設計的寶貴建議。