Как отсортировать массив строк по алфавиту
(Как отсортировать NSMutableArray и NSArray)
Допустим есть два массива строк NSArray и NSMutableArray, необходимо отсортировать их по алфавиту.
@property (retain, nonatomic) NSArray *techList;
@property (retain, nonatomic) NSMutableArray *toolList;
Для того, чтобы отсортировать NSArray необходимо воспользоваться методом
- (NSArray *)sortedArrayUsingDescriptors:(NSArray *)sortDescriptors;
Этот метод вернет новый отсортированный массив.
Для того, чтобы отсортировать NSMutableArray необходимо воспользоваться методом
- (void)sortUsingDescriptors:(NSArray *)sortDescriptors;
Сортировать массивы будем следующим образом
Сортируем NSArray
NSArray sortedTechList = [techList sortedArrayUsingSelector: @selector(localizedCaseInsensitiveCompare:)];
Сортируем NSMutableArray
[toolList sortUsingSelector:@selector(localizedCaseInsensitiveCompare:)];
Как отсортировать массив объектов по полю
(Как отсортировать NSMutableArray и NSArray)
Теперь допустим нам необходимо отсортировать массив объектов по определенному полю. Здесь ситуация такая же как и с сортировкой массива строк. Для разных массивов используются разные методы. Если нам необходимо отсортировать массив объектов по полю name, то тогда нам понадобиться воспользоваться классом NSSortDescriptor и методом sortDescriptorWithKey
Сортируем NSArray
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]; NSArray sortedTechList = [techList sortedArrayUsingDescriptors:@[sortDescriptor]];
[toolList sortUsingDescriptors: [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES selector:@selector(caseInsensitiveCompare:)]]];
Комментариев нет:
Отправить комментарий