/ / sortowanie tablic zmiennych w porządku alfabetycznym - iphone, cel-c, kod xcode, nmutablearray, nsarray

sortowanie tablic zmiennych w porządku alfabetycznym - iphone, cel-c, kod xcode, nmutablearray, nsarray

Mam tablicę nsmutowalną i w tym prawie 50 -60 obiektach o różnych nazwach i czy mogę posortować tę tablicę w kolejności alfabetycznej (czy to możliwe, jak?)

Odpowiedzi:

14 dla odpowiedzi № 1

Dla prostego sortowania, jak to, lubię używać deskryptorów sortowania.

Załóżmy, że masz zmienną tablicę obiektów, których klasa ma name Właściwość NSString:

NSSortDescriptor *sort=[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:sort]];

8 dla odpowiedzi № 2

Oczywiście, możesz użyć sortUsingSelector: dla tego:

[myArray sortUsingSelector:@selector(compare:)];

Jeśli twoja tablica ma obiekty niestandardowe, musisz zaimplementować metodę sortowania tych obiektów:

@implementation myCustomObject
...

-(NSComparisonResult) compare:(myCustomObject*) other {
return [self.name compare:other.name];
}

@end

2 dla odpowiedzi nr 3

Podejście TechZena działa dobrze, ale zadziałałobylepiej jeśli użyłeś NSSortDescriptor "s + sortDescriptorWithKey: ascending: selector :, przekazując" localizedCompare: "jako selektor.W ten sposób sortowanie jest zlokalizowane w języku użytkownika, co może zrobić dużą różnicę w porównywaniu ciągów znaków.


0 dla odpowiedzi nr 4
myArray=[myDict keysSortedByValueUsingSelector:@selector(compare:)];

Po prostu pracował dla mnie!