2010-08-04 85 views
0

好吧,我有一個UITableView層次結構。頂級控制器用於類別,這些類別是通過Fetched Results Controller選擇的,對於類別實體沒有謂詞。帶NSPredicate與核心數據的獲取結果控制器NSSet

當用戶點擊單元格時,它們會前進到項目表視圖控制器。

在這一點上,我認爲我應該使用另一個帶有NSPredicate的提取結果控制器來篩選出與選擇類別不匹配的結果。

但是,我在構建一個謂詞時遇到了很多困難。所有的例子似乎都是爲了搜索字符串來進行屬性比較。不比較CoreData關係。

那麼使用這種方法是一種更好的做法,還是直接從傳遞的類別管理對象中獲取NSSet項?

回答

2

您的第二級視圖控制器應該通過依賴注入將所選類別設置爲屬性。你的第二級視圖控制器應該只知道「它是」類別是X.它根本不需要NSFetchedResultsController,因爲你已經擁有了通過「它是」類別實體上的關係需要的所有信息。

爲此,在頂級視圖控制器中選擇類別時,您將通過NSFetchedResultsController獲取指向它的指針,實例化新視圖控制器,設置Category屬性,然後推送新視圖控制器。

這會給你的視圖控制器之間的固體封裝和分離。