У меня есть массив appd.arrOfDictAppProd, есть ключ Цена, который является строковым значением. Но я хочу сортировать этот массив по цене. Таким образом, я получаю ключ Price от appd.arrOfDictAppProd массив и конвертирует цену в строку в Int, затем создайте NSMutableArray newarray без каких-либо ключей. Я хочу отсортировать это с помощью NSSortDescriptor без использования каких-либо Ключ, потому что в моем newarray нет ключа. Мой код здесь:Сортировка массива с использованием NSSortDescriptor без использования какого-либо ключа?
for (int i = 0; i<appd.arrOfDictAppProd.count; i++) {
NSString *price_Value = [[appd.arrOfDictAppProd objectAtIndex:indexPath.row] objectForKey:@"price"];
int price_IntValue = [price_Value intValue];
NSLog(@"int value of prices:%d",price_IntValue);
NSNumber *num = [NSNumber numberWithInteger:price_IntValue];
NSLog(@"number-%@",num);
[newarray addObject:num];
}
NSLog(@"price array:%@",newarray);
NSSortDescriptor *sortDescriptor;
sortDescriptor =[[NSSortDescriptor alloc] initWithKey:@"num"
ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray1;
sortedArray1 = [newarray sortedArrayUsingDescriptors:sortDescriptors];
Когда я запускаю свою программу, в newarray У меня есть 14 значений, но это то же самое, то есть 3.
Исправьте цикл 'for'. Вы получаете один и тот же объект снова и снова, поэтому 'newArray' содержит 14 одинаковых значений. – rmaddy
@rmaddy. можете ли вы сказать мне, как исправить для loop.plz help – RAMA
Замените 'indexPath.row' на' i'. – rmaddy