2012-12-05 2 views
0

코어 데이터 모델에 "singerName", "albumName", "songName"의 3 가지 속성이 있습니다. 가수 문자열과 앨범 문자열을 표시하는 테이블보기가 있습니다.코어 속성 값이 동일한 엔티티 가져 오기

예를 들어, 마이클 잭슨을 사용하여 핵심 데이터를 가져옵니다. 나는 100 개의 결과를 얻었다. 그러나 각각 10 곡의 앨범이 10 곡 밖에 없을 수 있습니다.

내 질문은 NSPredicate를 작성하여 실제 앨범 이름을 모른 채 동일한 앨범을 삭제하고 마이클 잭슨의 10 가지 앨범 만 가져 오는 것입니다.

request.predicate = [NSPredicate predicateWithFormat:@"singerName != %@ && ???", @""]; 변경하고 싶네요 ??? 복제 된 앨범 이름을 버리기위한 형식으로

+0

더 많은 코드 실체는 무엇을 – Janub

+0

라고하세요? 관계를 설정 했습니까? 올바르게 설계된 모델을 사용하면이 작업을 쉽게 수행 할 수 있습니다. – ChrisH

답변

0

는 다음 시도 :

결과 현재 fetchedObjects 배열이다
NSArray *uniqueAlbums = [results valueForKeyPath:@"@distinctUnionOfObjects.albumName"]; 

.

+0

팁 주셔서 감사합니다. 성능상의 이유로 인출 요청에 NSDictionaryResultType을 사용합니다. 그래서 fetchedObjects 배열이 없습니다. 첫 번째 가져 오기를 수행하기 위해 NSPredicate 설정을 사용할 수 있습니까? – realsnake

+0

질문에 몇 가지 코드를 추가하십시오. – realsnake

+0

내가 아는 한, NSPredicate를 설정하기 만하면됩니다. 당신도 시도해 볼 수 request.returnsDistinctResults = YES; –

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];