Iphone 如何基于一个到多个属性的计数设置谓词

Iphone 如何基于一个到多个属性的计数设置谓词,iphone,core-data,Iphone,Core Data,我正在写一个iPhone应用程序。在我的应用程序中,我的数据库中有一个实体(我们称之为MusicCategory),它与数据库中的另一个实体(我们称之为歌曲)有一对多的关系 我正在尝试写一个查询,以获得歌曲数量最多的5个音乐类别 有人能给我一些关于如何为这个查询编写谓词的建议吗 非常感谢你的帮助 Vijay您不需要使用一些谓词,只需要设置一个按歌曲数量排序的排序描述符。但这并不有效,因为它会引发故障。因此,您可以添加一个count属性来提高效率 request.sortDescriptors =

我正在写一个iPhone应用程序。在我的应用程序中,我的数据库中有一个实体(我们称之为MusicCategory),它与数据库中的另一个实体(我们称之为歌曲)有一对多的关系

我正在尝试写一个查询,以获得歌曲数量最多的5个音乐类别

有人能给我一些关于如何为这个查询编写谓词的建议吗

非常感谢你的帮助
Vijay

您不需要使用一些谓词,只需要设置一个按歌曲数量排序的排序描述符。但这并不有效,因为它会引发故障。因此,您可以添加一个count属性来提高效率

request.sortDescriptors =[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"songs.count" ascending:YES]];

您不需要使用一些谓词,只需要设置一个按歌曲数量排序的排序描述符。但这并不有效,因为它会引发故障。因此,您可以添加一个count属性来提高效率

request.sortDescriptors =[NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"songs.count" ascending:YES]];

排序的方法是正确的。您可以将提取请求限制为所需的前5个请求:

fetchRequest.sortDescriptors = [NSArray arrayWithObject:
   [NSSortDescriptor sortDescriptorWithKey:@"songs.count" 
                                descending:YES]];
fetchRequest.fetchLimit = 5;

排序的方法是正确的。您可以将提取请求限制为所需的前5个请求:

fetchRequest.sortDescriptors = [NSArray arrayWithObject:
   [NSSortDescriptor sortDescriptorWithKey:@"songs.count" 
                                descending:YES]];
fetchRequest.fetchLimit = 5;

嗨,提姆,我不知道从哪里开始。我阅读了apple code数据文档并在网上搜索,但找不到任何帮助。现在,我正在获取音乐类别实体中的所有项目,并通过编程查找前5名。作为一名程序员,我的直觉告诉我应该有一种使用谓词的方法。我阅读了apple code数据文档并在网上搜索,但找不到任何帮助。现在,我正在获取音乐类别实体中的所有项目,并通过编程查找前5名。作为一名程序员,我的直觉告诉我应该有一种使用谓词的方法。