OC语言学习22-Block基本语法

创建工程,在main.h中编写代码:

#import <Foundation/Foundation.h>

//自定义C语言函数

void test()

{

    printf("%s\n", __func__);

}


int main(int argc, const char * argv[]) {

    @autoreleasepool {

        //函数指针 *testPtr指针名称,第二个()是参数表

        //test表示将函数赋值给函数指针变量

        void (*testPtr)() = test;

        //调用函数

        test();

        //用函数指针调用

        testPtr();

        //定义block

        void(^testBlock)() = ^() {

            test();

            //这里还可以添加代码逻辑

            NSLog(@"info");

        };

        testBlock();

        //使用__block定义才能在块中更改变量

        int __block number = 10;

        

        //实现两个数求和  两个int型的型参

        int (^sumBlock)(int, int) = ^(int a, int b) {

            number = 15; //声明时没有用__block会报错

            return a + b;

        };

        //此时的number的值还是为10,因为还没有调用block

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

        int sum = sumBlock(12,20);

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

        //调用之后才能执行压栈操作,这时的number的值为15了。

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

    }

    return 0;

}

打印结果:

test

test

test

2017-07-25 16:45:43.293516+0800 OC25-block基础语法[2296:113335] info

2017-07-25 16:45:43.293650+0800 OC25-block基础语法[2296:113335] number = 10

2017-07-25 16:45:43.293661+0800 OC25-block基础语法[2296:113335] sum = 32

2017-07-25 16:45:43.293669+0800 OC25-block基础语法[2296:113335] number = 15

Program ended with exit code: 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值