如何解决在 CoreData Swift
let fetchRequest:NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Students")
let sortDescriptor = NSSortDescriptor(key: "scores",ascending: false)
fetchRequest.fetchBatchSize = 50
fetchRequest.includesSubentities = true
请建议,我们如何找到每个部门的每个学生的最高分。
现在不幸的是,我无法将结果类型用作 NSDictionaryResultType
,因为我正在 NSFetchedResultsController 中获取数据。但是想要像@distinctUnionOfObjects 这样的东西。
[students valueForKeyPath:@"@distinctUnionOfObjects.department"]
预期输出
- 罗宾(法律)74
- 斯蒂芬(数学)98
- 约翰(计算机科学)95
- 蒂姆(电子)90
- 约翰逊(经济学)80
解决方法
伙计们,我遵循了@JoakimDanielson 分享的方法,但遇到了性能问题。因此,为了提高性能,我还将 topStudent 与分数存储在部门表中。现在性能下降是在插入时,而在 UI 线程上呈现时,性能从 1.09 ms
大幅提高到 450 usecs
。注意,我在获取时还在部门中添加了索引。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。