阵列过滤器与核心数据提取性能

哇哦

我想知道两种数据过滤方法之间的性能差异。这是我正在使用的东西:

  • 一组核心数据对象
  • 一个UISegmentedControl,它表示一个布尔过滤器(已学习还是未学习)
  • 一个UITableView显示已过滤的数据集

如我所见,这里有两种可能的方法:

  1. 在viewDidLoad中提取整个核心数据集。当分段控制值更改时,使用谓词过滤数据数组。重新加载tableview。
  2. 最初使用谓词提取核心数据集。当分段的控制值更改时,请使用更新的谓词重新拉动核心数据集。重新加载tableview。

我知道有一些因素会影响答案(数据集的大小,使用分段控件的频率),我只是想知道两者之间是否存在总体最佳实践。

伊利亚(男子名)

我不希望会有任何用户注意到的速度差异。

因此,以下是我认为与之相关的最佳实践

  1. 避免过早优化。
  2. 内存比速度更容易限制您的内存。
  3. 提前设计。

据此,我得出了适用于当前问题的三点建议

  1. 选择最容易维护的方法。
  2. 不要从核心数据中提取过多的对象。
  3. 有一些更新表视图中数据的策略。

要将这些观点合并为一个建议,最好使用该类NSFetchedResultsController在表中显示核心数据,因为它是专门为此目的而设计的:

  1. 封装了“我当前正在显示的数据块”的想法。
  2. 通过不拉不需要的东西来节省您的内存。
  3. 帮助更新tableview中的数据。

您可以通过在Xcode(4.4或更高版本)中创建一个新的基于Core Data的项目来使用它示例它更接近您的第二种方法。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章