Ios 在CoreData Swift中查找具有唯一父关系对象的对象
我需要1个核心数据获取请求的帮助。我有两个实体Ios 在CoreData Swift中查找具有唯一父关系对象的对象,ios,swift,core-data,nsfetchedresultscontroller,Ios,Swift,Core Data,Nsfetchedresultscontroller,我需要1个核心数据获取请求的帮助。我有两个实体 系 学生(带分数属性) 所以这个系可以有多个学生。 现在我想让每个来自不同系的学生都获得最高分数。 我已经查询了分数排序。但是你想要每个系唯一的学生 let fetchRequest:NSFetchRequest=NSFetchRequest(entityName:“学生”) 让sortDescriptor=NSSortDescriptor(键:“分数”,升序:false) fetchRequest.fetchBatchSize=50 fetchR
let fetchRequest:NSFetchRequest=NSFetchRequest(entityName:“学生”)
让sortDescriptor=NSSortDescriptor(键:“分数”,升序:false)
fetchRequest.fetchBatchSize=50
fetchRequest.includesSubentities=true
请建议,我们如何才能找到每个系中得分最高的学生
很遗憾,现在我无法将结果类型用作NSDictionaryResultType
,因为我正在NSFetchedResultsController中提取数据。但是想要像@distinctUnionOfObjects这样的东西。
[学生值forkeypath:@“@distinctUnionOfObjects.department”]
预期产量
伙计们,我遵循了@JoakimDanielson分享的方法,但面临着性能问题。因此,为了提高性能,我还将分数为的topStudent存储在department表中。现在性能的影响是在插入时,而在UI线程上进行渲染时,性能已从
1.09 ms
大幅提高到450 usecs
。注意,在获取期间,我还在部门中添加了索引。问题是什么?@zeytin-questionupdated@JoakimDanielson这是一个性能问题
let fetchRequest:NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Students")
let sortDescriptor = NSSortDescriptor(key: "scores", ascending: false)
fetchRequest.fetchBatchSize = 50
fetchRequest.includesSubentities = true