iOS 根据数组中的字典的value值进行排序

            NSMutableArray *resArr = [NSMutableArray array];
            
            // 先把所有值的装进一个数组中
            NSMutableArray *valArr = [NSMutableArray array];
            for (int i = 0; i < arr.count; i ++) {
                
                NSDictionary *dic = arr[i];
                
                
                NSString * str = [NSString stringWithFormat:@"%@-%d",dic[@"CountNum"],i];
                
                [valArr addObject:str];
                
            }
            
            // 未排序前的源数组 valArr
            
            // 排序后的值数组 after
            
            NSMutableArray *afterValArr = [valArr mutableCopy];
            
            // 根据索引进行依次的排序
            
            for (int  i =0; i<[afterValArr count]-1; i++) {
                
                for (int j = i+1; j<[afterValArr count]; j++) {
                    
                    NSString *val1 = [afterValArr[i] componentsSeparatedByString:@"-"][0];
                    NSString *val2 = [afterValArr[j] componentsSeparatedByString:@"-"][0];
                    
                    
                    
                    if ([val1 intValue]>[val2 intValue]) {
                        //交换
                        [afterValArr exchangeObjectAtIndex:i withObjectAtIndex:j];
                    }
                    
                }
                
            }
            
            for (int i = 0; i < arr.count; i ++) {
                
                NSNumber * val = afterValArr[i];
                NSInteger idx = [valArr indexOfObject:val];
                [resArr addObject:arr[idx]];
            }
            
            [self.modelArr addObjectsFromArray:[[resArr reverseObjectEnumerator]allObjects]];

你可能感兴趣的:(iOS)