核心数据:后台获取,NSFetchedResultsController和排序时间
||
我遇到的问题如下:
我有一个“ 0”,我从“ 1”中获取数据,而“ 1”从核心数据中检索了大约6000行。
NSFetchRequest
中的fetchBatchSize
设置为20,如果我不应用任何NSSortDescriptor
,则抓取速度足够快,不会阻塞UI线程。
但是,我确实需要显示那些使用以下NSSortDescriptor按字母顺序排序的行:
[[[NSSortDescriptor alloc] initWithKey:@\"optionText\" ascending:YES selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
当事情发生变化时,由于正在对6000行进行排序,因此提取操作现在大约需要3秒钟才能完成。显然,在那几秒钟中,UI被阻止,用户体验非常糟糕。
我知道我可以在后台线程中进行提取,然后将对象ID传递给主线程,但是在那种情况下,我如何仍可以在主线程中使用ѭ1(我也使用它来观察数据的变化) )?
我还有[7]我要进行排序的属性,但这只会优化查找,而不优化排序性能。
任何想法将不胜感激,谢谢!
没有找到相关结果
已邀请:
6 个回复
苛肠倒俱
贡炮逗握惫
属性? 如果您将批处理大小设置为非零,则返回对象集合 执行提取时将分为几批。当获取 执行后,将评估整个请求并确定所有身份 匹配记录的对象,但不超过batchSize对象的数据 将一次从持久性存储中获取。数组 执行请求返回的将是一个代理对象 按需透明地对批次进行故障处理。 (用数据库术语来说,这是一个 内存中的游标。)
慰泥悍瓶
戒黑恳农
扦帽次杏
砷竣阿
要么