Ios 在CoreData Swift中查找具有唯一父关系对象的对象

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

我需要1个核心数据获取请求的帮助。我有两个实体

  • 学生(带分数属性) 所以这个系可以有多个学生。 现在我想让每个来自不同系的学生都获得最高分数。 我已经查询了分数排序。但是你想要每个系唯一的学生
  • let fetchRequest:NSFetchRequest=NSFetchRequest(entityName:“学生”)
    让sortDescriptor=NSSortDescriptor(键:“分数”,升序:false)
    fetchRequest.fetchBatchSize=50
    fetchRequest.includesSubentities=true
    
    请建议,我们如何才能找到每个系中得分最高的学生

    很遗憾,现在我无法将结果类型用作
    NSDictionaryResultType
    ,因为我正在NSFetchedResultsController中提取数据。但是想要像@distinctUnionOfObjects这样的东西。
    [学生值forkeypath:@“@distinctUnionOfObjects.department”]

    预期产量

  • 罗宾(法律)74
  • 斯蒂芬(数学)98
  • 约翰(计算机科学)95
  • 蒂姆(电子)90
  • 约翰逊(经济学)80

  • 伙计们,我遵循了@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