Как отсортировать mutablensarray? - PullRequest
0 голосов
/ 17 сентября 2011

Я сделал этот код для сортировки nsmutablearray, но как отправить обратно NSMutablearray? мне это нужно, потому что позже я добавлю информацию в мой mutablearray.

- (NSArray *) trierTableau: (NSMutableArray *) ptableau champsFiltre: (NSString *) champs {

NSSortDescriptor *lastDescriptor =
[[[NSSortDescriptor alloc]
  initWithKey:champs
  ascending:YES
  selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];

NSArray * descriptors = [NSArray arrayWithObjects:lastDescriptor, nil];
NSArray * sortedArray = [ptableau sortedArrayUsingDescriptors:descriptors];

return sortedArray;

}

1 Ответ

0 голосов
/ 17 сентября 2011

Если вы хотите отсортировать NSMutableArray на месте, тогда вы можете вызвать sortUsingDescriptors: вместо sortedArrayUsingDescriptors:, что возвращает отсортированную копию вашего массива.sortUsingDescriptors: отсортирует существующие NSMutableArray.

например,

-(void)trierTableau:(NSMutableArray*)ptableau champsFiltre:(NSString*) champs {
    NSSortDescriptor *lastDescriptor =
    [[[NSSortDescriptor alloc]
      initWithKey:champs
      ascending:YES
      selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];

    NSArray * descriptors = [NSArray arrayWithObjects:lastDescriptor, nil];
    [ptableau sortUsingDescriptors:descriptors];
}

Таким образом, вам не нужно возвращать NSMutableArray.

Если вына самом деле требуется отсортированная копия массива, затем вам нужно будет создать новый NSMutableArray, использовать addObjectsFromArray: для копирования элементов, а затем использовать sortUsingDescriptors: в новом массиве.Но я думаю, что сортировка существующих NSMutableArray - это, вероятно, то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...