2012-10-09 75 views
0

我的應用程序中有一個工作流,用戶將在其中創建一個複合過濾器,然後按下按鈕查看過濾器的結果。將NSFetchedResultsController作爲屬性傳遞

在構建篩選器的屏幕中,他們可以從字段列表中進行選擇並設置值應該是什麼。還有一個UILabel,顯示與當前所選過濾器匹配的結果數量。

我使用NSFetchedResultsController,使其更容易得到計數和改變謂詞等等

當用戶按下「下一步」(或任何按鈕標記),他們將隨後查看與TableView中那些結果。

NSFetchedResultsController傳遞給tableViewController是不好的做法嗎?

或者我應該只傳遞構建新的NSFetchedResultsController(即NSPredicate)所需的信息。

我可以做或者只是不確定是否有任何方法的優點/缺點?

+1

如果可能的話傳遞信息。它將防止緩存問題。如果一切都失敗,您可以使用委託將呼叫回傳給您的初始(主)控制器。 –

回答

1

NSFetchedResultsController上有一個委託。在傳遞NSFetchedResultsController時必須分配一個新的委託,並且在按下該按鈕時刪除所顯示的視圖控制器時,必須再次分配委託。請記住,當您更改NSFetchedResultsController的獲取請求的謂詞時,您正在執行另一次獲取。基本上,你正在複雜化你的架構,而基本上什麼都沒有。創建一個新的NSFetchedResultsController對象。

+0

由於謂詞是在前面的VC中設置的,這並不是太多的問題,我不需要委託,因爲我不添加/刪除行。但是,由於緩存原因,我決定通過謂詞並創建一個新的NSFetchedResaultsController。謝謝。 – Fogmeister

1

NSFetchedResultsController真的是你需要的tableView。

相關問題