我有大约1000多个数据条目(数字,名称,年龄,颜色)。在第一个视图中,用户可以输入一个数字,它将在第二个视图上输出相应的条目。
我是否必须使用CoreData,或者使用简单数组来存储数据是一个很好的解决方案吗?
数组是否使用了大量内存?数组是否会变慢?
答案 0 :(得分:3)
如果有1000多个字符串以及其他数据,您可能会很快遇到内存问题。此外,如果您不使用Core Data提供的增量存储,则更改数据的最小单位将需要重写整个列表。
核心数据将是我的选择,但学习曲线有些陡峭。这并不是那么困难,但需要一段时间才能适应。 NSFetchedResultsController
将确保良好的性能和较低的内存占用。
但是,如果持久性不是真正的问题,并且您实际上计算数据(例如,基于初始数字),您可能希望使用不同的方案。例如,在标准UITableView
中,您可以根据索引路径计算要在datasource
方法中显示 ad hoc 的数据 - 然后您只需要计算可见细胞的数据。根据数据模型的需求,滚动速度非常快时可能会出现一些性能问题 - 这很难预测。
答案 1 :(得分:0)
为什么要使用CoreData而不是简单的NSArray,有不同的考虑因素。
问自己一些问题:
根据您的答案,您可以选择CoreData或NSArray。将所有数据保存在内存中仍然很昂贵,无论如何都应该避免使用它。在我看来,我会尝试使用CoreData,尽管它会在第一行产生一些开销。