使用块代码实现数组排序和乱序
1 #import "HMViewController.h" 2 3 @interface HMViewController () 4 5 @end 6 7 @implementation HMViewController 8 9 - (void)viewDidLoad 10 { 11 [super viewDidLoad]; 12 13 // 块代码 14 NSArray *array = @[@(1), @(2), @(3), @(4), @(5)]; 15 16 // 排序 17 array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) { 18 19 // 乱序=>一会升序,一会降序 20 // 随机 21 // arc4random_uniform(10) => 0~9之间的随机数 22 int seed = arc4random_uniform(2); 23 if (seed) { 24 return [num1 compare:num2]; 25 } else { 26 return [num2 compare:num1]; 27 } 28 }]; 29 30 NSLog(@"%@", array); 31 } 32 33 - (void)sortWith:(NSArray *)array 34 { 35 // 排序 36 array = [array sortedArrayUsingComparator:^NSComparisonResult(NSNumber *num1, NSNumber *num2) { 37 38 /** 39 1 4 5 2 40 4 1 5 2 41 4 1 5 2 42 5 4 1 2 43 5 4 1 2 44 5 4 2 1 45 */ 46 NSLog(@"%@ %@", num1, num2); 47 48 // 升序 49 // return [num1 compare:num2]; 50 // 降序 51 return [num2 compare:num1]; 52 }]; 53 54 NSLog(@"%@", array); 55 } 56 57 - (void)arrayWith:(NSArray *)array 58 { 59 int i = 0; 60 for (NSNumber *num in array) { 61 NSLog(@"%@", num); 62 63 if (i == 1) { 64 break; 65 } 66 i++; 67 } 68 69 // 参数:对象,索引,是否中断 70 // 数组的块方法遍历的效率比for in高 71 [array enumerateObjectsUsingBlock:^(NSNumber *obj, NSUInteger idx, BOOL *stop) { 72 NSLog(@"%@", obj); 73 74 // idx == 1 退出循环 75 if (idx == 1) { 76 *stop = YES; 77 } 78 }]; 79 } 80 81 @end
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。