2010-03-11 13 views
13

NSSet çekirdek verilerinin verilerini sıralamak istiyorum (bunu yalnızca dizilerle yapabileceğimizi biliyorum ama açıklamama izin verin ...). Varlık tarifi ile bir çok ilişkisi olan bir varlık kullanıcım var. Bir tarifin öznitelik adı ve kimliği vardır. Ben veri almak istiyorum öyle ki: Ben her iki dizide de dizin 1'de nesneyi alırsakÇekirdek veri varlığının NSSets sıralama - Objective-c

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

, onlar ... Aynı reçeteye

Teşekkür

cevap

40

Önce tarifleri sıralamak gerekir: Ancak, geçici bir çözüm için Önemsiz sonra sıralanmış tarifleri diziden niteliklerin bir dizi çıkarabilir ve sonuçları sıralanabilir kalır

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

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

Sipariş:

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

Teşekkürler bu yöntem iyi çalışır ... @ @ id ile @ "name" tanımlayıcısını değiştirdim ve iPhone'da initWithKey ile sortDescriptorWithKey yöntemini değiştirdim ve yayımlanan bir betik oluşturmak için örnek bir yöntem yok o! – ncohen

7

gelmektedir Eğer Aynı sırada bulunmalarını isteyin, sonra değerleri ayıklamadan önce bunları sıralamanız gerekir. Örnek:

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

DÜZENLEME

Özürlerimi. Bunun bir iPhone sorusu olduğunu ve iPhone'da NSSet'un sortedArrayUsingDescriptors: bulunmadığını fark ettim.

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

Sorun, user.recipes'ın bir NSSet olmasıdır ... bu yüzden işe yaramaz! Ve arrayOfSortDescriptors nasıl sıralanır? thx – ncohen

İlgili konular