• 使用块代码实现数组排序和乱序


     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
  • 相关阅读:
    Fiddler工具抓包
    简单Ant打包
    android中ActionBar的几个属性
    yum安装php7.2
    java 获取计算机内存
    docker apache安装
    docker 安装 openresty
    docker 安装nginx
    docker安装gitlab
    java获取时间格式
  • 原文地址:https://www.cnblogs.com/liqiantu/p/4391295.html
Copyright © 2020-2023  润新知