【发布时间】:2011-03-14 02:25:01
【问题描述】:
将NSFetchedResultsController 纯粹用于数据管理是错误的吗,即不使用它来提供UITableView?
我在 Core Data iPhone 应用程序中有一个多对多关系。每当该关系中的数据发生变化时,我需要执行一个需要对该数据进行排序的计算。在 Apple 的标准部门/员工示例中,这就像确定给定部门的工资中位数一样。每当员工被添加到该部门或从该部门移除,或者员工的薪水发生变化时,都需要再次执行中位数计算。
保持数据的排序和最新状态,并在数据发生变化时收到通知,这对于 NSFetchedResultsController 来说是一项很棒的工作。唯一的“问题”是我没有使用UITableView。换句话说,我没有在UITableView 中显示已排序的员工。我只想要一个最新的员工排序数组,以便我可以在幕后分析它们。 (当然,我不想写一大堆重复NSFetchedResultsController 的代码。)
将NSFetchedResultsController 纯粹用于数据管理是不是一个坏主意,即不使用它来提供UITableView?我还没有在任何地方看到这样做,并认为我可能会遗漏一些东西。
【问题讨论】:
-
如下所述,以这种方式使用获取的结果控制器不是问题。你应该记住“过早的优化是万恶之源”。因为它是您实现的最简单的方法,请尝试它并查看它是否适用于该特定实例,然后仅在您测试并发现它不足时尝试其他方法。
-
在这里很难反驳@TechZen 的建议。我非常喜欢 Core Data,以至于我倾向于以不同的方式看待它的内部结构。
-
据我所知,共识是从设计的角度来看这不是一个坏主意,但它可能会影响性能,最好通过测试来评估。我希望我能接受所有的答案。