코어 데이터를 처음 접했고 핵심 데이터를 사용하여 이와 같은 쿼리를 작성하는 방법을 모릅니다.관계의 엔티티 수를 기반으로 결과를 얻는 코어 데이터
스키마의 두 엔티티 앨범과 노래가 있습니다. 앨범은 노래와 관련이 많고 관계 이름은 트랙입니다. 나는 모든 앨범을 가져 오기 위해 쿼리를 작성 했으므로 잘 작동합니다. 하지만 이제는 앨범에서 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'은 그냥 작동해야합니다. –
코드와 문제에 대한 더 자세한 설명을 포함하면 도움이 될 것입니다. *이 기능이 작동하지 않습니다. * 실제로 작동하지 않는 이유를 파악하는 데 도움이되지 않습니다. – Caleb