Próbowałem w ten sposób: Values = [[NSSet setWithArray:Values] allObjects];
i nie Sukces,NSMutableArray - usuwanie duplikatów
Dzięki
Próbowałem w ten sposób: Values = [[NSSet setWithArray:Values] allObjects];
i nie Sukces,NSMutableArray - usuwanie duplikatów
Dzięki
Twoja metoda działa, oprócz tego, że zwraca NSArray
zamiast NSMutableArray
. Można użyć funkcji
, aby ustawić values
na zawartość nowej tablicy.
Należy pamiętać, że metoda NSSet
może usunąć każde zamówienie w swoim NSArray
. Możesz chcieć zapętlić swoją tablicę, aby zachować kolejność. Coś takiego:
NSMutableArray* uniqueValues = [[NSMutableArray alloc] init];
for(id e in Values)
{
if(![uniqueValues containsObject:e])
{
[uniqueValues addObject:e];
}
}
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);
dobry kod, wielkie dzięki. – Felipe
Możemy użyć wartości klucza Kodowanie:
uniquearray = [yourarray valueForKeyPath:@"@distinctUnionOfObjects.fieldNameTobeFiltered"];
Patrz poniższy artykuł dla pełnego zrozumienia
Także, jeśli (x = [ Wartości się liczą]) jak to zrobić? dzięki – user393273
@ user393273: ?? – kennytm