gpt4 book ai didi

ios - NSCoreData 条目获取的性能

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:12:14 24 4
gpt4 key购买 nike

例如,我在数据库中有 10000 个条目,我需要将它们显示到 UITableView 中。

所以,我应该设置所有的 NSCoreData 东西,创建 NSFetchRequest 和 NSFetchedResultsController。

然后我可以使用 [NSFetchedResultsController objectAtIndex] 方法访问 cellForRowAtIndexPath 中的这些条目。

问题是:

  1. NSFetchedResultsController 是否会以惰性方式加载所有这些对象,仅在用户实际将 UITableView 滚动到相应的单元格之后?
  2. 仅将 NSFetchRequest 的 fetchBatchSize 设置为等于屏幕上单元格计数的数字就足够了吗?
  3. 我应该使用单独的 NSManagedObjectContext 和后台线程来加载这些对象吗?在单独线程的情况下,[NSFetchedResultsController objectAtIndex] 方法在从 Main-UI 线程调用时如何工作?
  4. 我什至应该担心这些事情,而我只有 10k 个条目?

最佳答案

NSFetchedResultsController 会为您处理所有问题。

  1. 延迟加载? 事实上,FRC 会尽量做到延迟加载。无事可做。实际上,它针对滚动、速度、性能、内存使用情况进行了优化。
  2. 批量大小? 不相关。你可以忘记它。如果您愿意,可以设置性能测试并比较使用和不使用 batchSize。我预测您不会发现任何差异,或者可以忽略不计。 (如果有的话,可能是极端的滚动速度。)
  3. 单独的 NSManagedObjectContext? 绝对不行。 NSFetchedResultsController 应该在主线程上使用。
  4. 关注记录数? 由于上述原因,您完全不必担心这一点,尤其是延迟加载。我在 X00.000s 记录方面取得了很好的成绩。

关于ios - NSCoreData 条目获取的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com