2010-10-07 29 views

risposta

42

vostro metodo dovrebbe funzionare, eccetto che restituisce un NSArray invece di NSMutableArray. Si potrebbe utilizzare

[values setArray:[[NSSet setWithArray:values] allObjects]]; 

per impostare values al contenuto del nuovo array.

+1

anche se (x = [ I valori contano]) come lo farei? grazie – user393273

+7

@ user393273: ?? – kennytm

22

Si noti che il metodo NSSet può rimuovere qualsiasi ordine nel proprio NSArray. Potresti voler passare attraverso il tuo array per mantenere l'ordine. Qualcosa di simile a questo:

NSMutableArray* uniqueValues = [[NSMutableArray alloc] init]; 
for(id e in Values) 
{ 
    if(![uniqueValues containsObject:e]) 
    { 
     [uniqueValues addObject:e]; 
    } 
} 
19
NSMutableArray* myArray = 
[[NSMutableArray alloc]initWithObjects: 
@"red",@"blue",@"red",@"green",@"yellow", @"33", @"33",@"red", @"123", @"123",nil]; 

NSOrderedSet *mySet = [[NSOrderedSet alloc] initWithArray:myArray]; 
myArray = [[NSMutableArray alloc] initWithArray:[mySet array]]; 

NSLog(@"%@",myArray); 
+0

buon codice, grazie mille. – Felipe

1

Possiamo usare Chiave Valore Coding:

uniquearray = [yourarray valueForKeyPath:@"@distinctUnionOfObjects.fieldNameTobeFiltered"]; 

prega di fare riferimento l'articolo qui sotto per comprensione completa

KVC Collection Parameters

Problemi correlati