核心数据获取具有相同属性值的实体

时间:2012-12-05 08:55:52

标签: iphone ios core-data

我有一个核心数据模型有3个属性,“singerName”,“albumName”,“songName”。 并且有一个表格视图来显示歌手字符串和专辑字符串。

例如,我使用Michael Jackson获取核心数据。我得到了100个结果。但可能只有10张专辑各有10首歌曲。

我的问题是如何在不知道实际专辑名称的情况下编写NSPredicate来丢弃同一专辑,只获取迈克尔·杰克逊的10张不同专辑。

request.predicate = [NSPredicate predicateWithFormat:@"singerName != %@ && ???", @""]; 我想改变 ???以某种格式丢弃重复的albumName。

2 个答案:

答案 0 :(得分:0)

尝试以下方法:

NSArray *uniqueAlbums = [results valueForKeyPath:@"@distinctUnionOfObjects.albumName"];

其中results是当前的fetchedObjects数组。

答案 1 :(得分:0)

NSFetchRequest * fetchRequest = [[NSFetchRequest alloc] init];

NSEntityDescription *entity = [NSEntityDescription entityForName:@"Countries" inManagedObjectContext:appDelegate.managedObjectContext];
[fetchRequest setEntity:entity];


NSPredicate *objPredicate = [NSPredicate predicateWithFormat:@"cname == %@",objCountries];

[fetchRequest setPredicate:objPredicate];