2012-10-09 77 views
0

我的应用程序中有一个工作流,用户将在其中创建一个复合过滤器,然后按下按钮查看过滤器的结果。将NSFetchedResultsController作为属性传递

在构建筛选器的屏幕中,他们可以从字段列表中进行选择并设置值应该是什么。还有一个UILabel,显示与当前所选过滤器匹配的结果数量。

我使用NSFetchedResultsController,使其更容易得到计数和改变谓词等等

当用户按下“下一步”(或任何按钮标记),他们将随后查看与TableView中那些结果。

NSFetchedResultsController传递给tableViewController是不好的做法吗?

或者我应该只传递构建新的NSFetchedResultsController(即NSPredicate)所需的信息。

我可以做或者只是不确定是否有任何方法的优点/缺点?

+1

如果可能的话传递信息。它将防止缓存问题。如果一切都失败,您可以使用委托将呼叫回传给您的初始(主)控制器。 –

回答

1

NSFetchedResultsController上有一个委托。在传递NSFetchedResultsController时必须分配一个新的委托,并且在按下该按钮时删除所显示的视图控制器时,必须再次分配委托。请记住,当您更改NSFetchedResultsController的获取请求的谓词时,您正在执行另一次获取。基本上,你正在复杂化你的架构,而基本上什么都没有。创建一个新的NSFetchedResultsController对象。

+0

由于谓词是在前面的VC中设置的,这并不是太多的问题,我不需要委托,因为我不添加/删除行。但是,由于缓存原因,我决定通过谓词并创建一个新的NSFetchedResaultsController。谢谢。 – Fogmeister

1

NSFetchedResultsController真的是你需要的tableView。

相关问题