2010-03-11 5 views
13

코어 데이터 NSSet의 데이터를 정렬하고 싶습니다. (배열로만 할 수 있지만 설명해 드리겠습니다.). 엔티티 제조법과 많은 관계가있는 엔티티 사용자가 있습니다. 조리법에는 이름과 ID 속성이 있습니다. 나는 데이터를 좀하고 싶습니다 있도록 : 나는 두 배열에서 인덱스 1의 객체를 가지고가는 경우에핵심 데이터 엔티티의 NSSets 정렬 - 목표 -C

NSArray *id = [[user.recipes valueForKey:@"identity"] allObjects]; 
NSArray *name = [[user.recipes valueForKey:@"name"] allObjects]; 

, 그들은 ... 같은 조리법에

감사

답변

40

을 먼저 조리법을 정렬 할 필요가있다 : 그러나, 주변 일을 사소한 그런 다음 분류 조리법 배열의 속성의 배열을 추출 할 수 있습니다 결과 정렬에 남아

NSArray *sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]; 

NSArray *sortedRecipes = [[recipes allObjects] sortedArrayUsingDescriptors:sortDescriptors]; 

주문 :

NSArray *sortedNames = [sortedRecipes valueForKey:@"name"]; 
NSArray *sortedIdentities = [sortedRecipes valueForKey:@"identity"]; 
+0

고맙습니다.이 메서드는 잘 작동합니다 ... @ "id"로 디스크립터 @ "name"을 변경했고, 아이폰에서는 initWithKey로 메소드 sortDescriptorWithKey를 변경하고 릴리스 한 인스턴스 메서드가 없습니다. 그것! – ncohen

7

대응 당신이 만약 그것들이 같은 순서로 있기를 원한다면, 값을 추출하기 전에 그들을 정렬해야합니다. 예 :

NSArray * sortedRecipes = [user.recipes sortedArrayUsingDescriptors:arrayOfSortDescriptors]; 
NSArray * identities = [sortedRecipes valueForKey:@"identity"]; 
NSArray * names = [sortedRecipes valueForKey:@"name"]; 

편집

나의 사과. 방금 이것이 아이폰 질문임을 깨달았습니다. NSSet은 아이폰에 sortedArrayUsingDescriptors:이 없습니다.

NSArray * recipes = [user.recipes allObjects]; 
NSArray * sortedRecipes = [recipes sortedArrayUsingDescriptors:arrayOfSortDescriptors]; 
.... 
+1

문제는 user.recipes가 NSSet ...이므로 작동하지 않습니다. 그리고 arrayOfSortDescriptors를 어떻게 정렬합니까? thx – ncohen

관련 문제