2010-08-09 4 views

Répondre

0

Si supposer droit, que les objets dans votre tableau sont d'une classe personnalisée, mettre en œuvre une méthode de cette classe:

- (NSComparisonResult)compareByTax:(id)other 
{ 
    return [[self valueForKeyPath: @"tax.taxName"] compare: [other valueForKeyPath: @"tax.taxName"]]; 
} 

font ensuite les éléments suivants:

[array sortUsingSelector: @selector(compareByTax:)]; 
0

Depuis iOS4, vous pouvez utiliser des comparateurs avec ce message NSArray:

- (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr 

vous écrirait quelque chose comme ceci:

NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^(id object1, id object2) { // return NSComparisonResult ... }] 

Une autre possibilité consiste à définir la fonction AC qui sert de rappel avec cette Message NSArray:

- (NSArray *)sortedArrayUsingFunction:(NSInteger (*)(id, id, void *))comparator context:(void *)context 

Jetez un coup d'œil dans la documentation de NSArray sont des messages pour le tri avec des sélecteurs ou des descripteurs aussi. Cela dépend de ce qui vous convient le mieux.

Questions connexes