oc中blick

block可以用来封装和保存代码,有点像函数,block可以在任何时候执行; block有返回值,有形参,和函数的调用方式一样;

代码如下:

    int (^myBlock)(int) = ^(int num){

        return num *10;

    };

    

    int a = 0;

    a = myBlock(100);

    NSLog(@"a = %d", a);

        

    //两个数比较大小

    int (^maxBlock)(int, int) = ^(int x, int y){

        return x > y ? x : y;

    };

    

    int max = 0;

    max = maxBlock(5, 10);

    NSLog(@"max = %d", max);

    

    

    

    //两个数求和

    int (^sumBlock)(int, int) = ^(int x, int y){

        return x + y;

    };

    

    int sum = 0;

    sum = sumBlock(4, 5);

    NSLog(@"sum = %d", sum);

    

    

    int (^max3Block)(int, int, int) = ^(int x1, int x2, int x3){

        return maxBlock(maxBlock(x1, x2), x3);

    };

    NSLog(@"%d", max3Block(4, 5, 6));

    

    

    int (^string2Number)(NSString *) = ^(NSString *s){

        return [s intValue];

    };

    int b = 0;

    b = string2Number(@"213");

    NSLog(@"b = %d", b);

    

    typedef int (^SBBlock)(NSString *);

    SBBlock sBlock = string2Number;//sblock是指针

    

    NSLog(@"%d", sBlock(@"333"));

    

    

    

    __block int num = 1;

    void (^addNum)(void) = ^(void){

        int c = num * 10;

        num = 10;

        NSLog(@"c = %d", c);

        count++;

    };

    addNum();

    NSLog(@"num = %d", num);

    

    

    NSArray *stringArray = [NSArray arrayWithObjects:@"abc10", @"abc21", @"abc12",@"abc50", @"abc13", nil];

    NSComparisonResult (^compareBlock)(NSString *, NSString *) = ^(NSString *s1, NSString *s2){

        return [s1 compare:s2];

    };

    NSArray *sortArray = [stringArray sortedArrayUsingComparator:compareBlock];

    NSLog(@"%@",sortArray);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值