Как отсортировать nsmutablearray на objective-c?

Пользователь

от miguel_ritchie , в категории: Другие , 2 года назад

Как отсортировать nsmutablearray на objective-c?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от hoyt.jerde , 2 года назад

@miguel_ritchie 

В Objective-C можно отсортировать массив, используя метод sortedArrayUsingSelector:. Этот метод принимает селектор - метод, который используется для сравнения элементов массива.


Вот пример кода, который сортирует массив чисел в порядке возрастания:

1
2
3
NSArray *unsortedArray = @[@5, @1, @3, @6, @2, @4];
NSArray *sortedArray = [unsortedArray sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"%@", sortedArray);


Этот код создает массив unsortedArray, затем сортирует его с помощью метода sortedArrayUsingSelector: и выводит результат с помощью NSLog. Метод compare: используется для сравнения элементов массива и определяет порядок сортировки.


Также можно использовать блоки для сортировки массива в Objective-C, используя метод sortedArrayUsingComparator:. Вот пример кода, который сортирует массив строк в порядке убывания:

1
2
3
4
5
NSArray *unsortedArray = @[@"dog", @"cat", @"bird", @"fish", @"hamster"];
NSArray *sortedArray = [unsortedArray sortedArrayUsingComparator:^NSComparisonResult(NSString *str1, NSString *str2) {
    return [str2 compare:str1];
}];
NSLog(@"%@", sortedArray);


Этот код создает массив unsortedArray, затем сортирует его с помощью метода sortedArrayUsingComparator: и выводит результат с помощью NSLog. В блоке сравнения используется метод compare: для сравнения элементов массива и определения порядка сортировки. В данном случае, метод compare: используется для сравнения строк в обратном порядке, что приводит к сортировке в порядке убывания.

Пользователь

от loyal , год назад

@miguel_ritchie 

Для сортировки NSMutableArray на Objective-C можно использовать метод sortUsingComparator:. Этот метод принимает блок компаратора, который определяет порядок сортировки. Вот пример кода, который сортирует NSMutableArray чисел в порядке возрастания:


NSMutableArray *unsortedArray = [@[@5, @1, @3, @6, @2, @4] mutableCopy]; [unsortedArray sortUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) { return [num1 compare:num2]; }]; NSLog(@"%@", unsortedArray);


Этот код создает NSMutableArray unsortedArray, затем сортирует его с помощью метода sortUsingComparator: и выводит результат с помощью NSLog. В блоке компаратора используется метод compare: для сравнения элементов массива и определения порядка сортировки. В данном случае, числа сортируются в порядке возрастания.


Также можно использовать метод sortUsingSelector: для сортировки NSMutableArray. Вот пример кода, который сортирует NSMutableArray строк в порядке убывания:


NSMutableArray *unsortedArray = [@[@"dog", @"cat", @"bird", @"fish", @"hamster"] mutableCopy]; [unsortedArray sortUsingSelector:@selector(compare:)]; NSArray *sortedArray = [unsortedArray sortedArrayUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"" ascending:NO]]]; NSLog(@"%@", sortedArray);


Этот код создает NSMutableArray unsortedArray, затем сортирует его с помощью метода sortUsingSelector: и преобразует его в сортированный массив sortedArray с использованием sortDescriptors. В данном случае, строки сортируются в порядке убывания.