我是核心数据的新手,我不知道如何使用核心数据编写像这样的查询。根据关系实体数核心数据获取结果
我在模式中有两个实体Album和Songs。专辑与Song有许多关系,关系名称是曲目。我有写查询来获取所有相册,这是行之有效的。但是现在我想在这方面做些小改变,这样我就不会得到有0首歌曲的专辑。 我试图设置谓词要求如
[email protected] != 0
[email protected] != nil
,但是这不工作可能是因为断裂的?我是否需要预取关系或什么。我不想在专辑中添加属性songCount,我只需要计数歌曲。 什么是写这样的查询的最佳方式? 在此先感谢!
码 -
NSFetchRequest *request = [[NSFetchRequest alloc] init];
request.entity = [NSEntityDescription entityForName:@"Album" inManagedObjectContext:[self managedObjectContext]];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)];
[request setSortDescriptors:[NSArray arrayWithObject:sort]];
NSPredicate *albumPredicate = [NSPredicate predicateWithFormat:@"[email protected] > 0"];
[request setPredicate:albumPredicate];
这是我
CoreData: sql: SELECT 0, t0.Z_PK FROM ZALBUM t0 WHERE (SELECT COUNT(*) FROM ZTRACK t1 WHERE (t0.Z_PK = t1.ZALBUM)) > ? ORDER BY t0.ZNAME COLLATE NSCollateNoCase
什么是错的代码开机调试模式后上了车控制台?
'tracks。@ count!= 0'应该可以工作。 – 2013-04-26 07:43:51
如果您包含代码并更好地描述问题,它会有所帮助。 *这是行不通的*真的不足以让我们帮你弄清楚为什么它不起作用。 – Caleb 2013-04-26 08:44:22