我是核心數據的新手,我不知道如何使用核心數據編寫像這樣的查詢。根據關係實體數核心數據獲取結果
我在模式中有兩個實體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