对于由 sqlite 数据库支持的基于 CoreData 的 iOS 应用程序。对于包含 150 万条或更多记录的实体,使用 NSManagedObjectContext
的 countForFetchRequest
方法大约需要 1 分钟。
有没有办法在稍微短一点的时间内得到计数?
虽然人们选择基于该实体中的插入/删除的内存计数器,但如果需要通过 iTunes 将该 sqlite 数据库从一台 iOS 设备复制到另一台设备,这将无济于事,因为 iOS 应用程序启用了文件共享.
sqlite数据库存放在Documents目录下。
对此有什么想法吗?
最佳答案
计数的速度取决于您的谓词。谓词越复杂,计数越慢。
请编辑您的问题并显示谓词,以便我们可以帮助您提高其性能。
其次,您是否通过仪器运行此代码以验证缓慢的是计数?您可能最终会惊讶于其他一些事件的发生,这才是真正缓慢的部分。
关于ios - NSManagedObjectContext 的 countForFetchRequest 需要很长时间才能获得更大的对象图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21629235/