Block

Block简单语法

Block在typedef中的声明格式:typedef 返回值类型 (^块名称)(参数类型1,参数类型2,参数类型3.........);

Block普通的声明格式:返回值类型 (^块名称)(参数类型1,参数类型2,参数类型3.........);

Block变量的声明格式:块名称   变量名称1,变量名称2,变量名称3.......;

Block变量的赋值(实现),注意声明中的参数和返回值个数和类型要互相匹配,但是返回值类型在实现中无需标明但是块内必须return才行且类型要与声明的一致,最后在花括号外面记得加分号

//在无参数的情况下可以是下面的格式:

变量名 = ^{

//块里面操作,任意发挥

};


//标准的块变量的实现方法

变量名 = ^(){

//块的操作,随意.....

};

块的调用,实际上块是一种匿名函数,调用的格式跟函数的调用格式一样

块变量名();   //块使用typedef的情况下使用这种方式

块名称(); //没有使用typedef起别名的时候用这种方式


在块内部可以使用他所在的块中的外部变量,但是无法修改变量的值,若要修改变量的值需要在变量前面加上__block的关键字

块使用property的时候使用copy属性


例子:

//给块起别名

typedef void(^BLOCK) (int,int);


//创建块变量并且赋值

    BLOCK b1 = ^(int a,int b){

        NSLog(@"%d   and   %d",a,b);

    };


//无参块的创建实现和调用

    void (^myBlock)() = ^(void){

        NSLog(@"这是一个无参块");

    };

    

    myBlock();

    

    void (^myBlock2)();

    

    myBlock2 = ^(){

        NSLog(@"dshdskblhlsdhihfaldhf");

    };

    

    myBlock2();

有参块、有返回值的例子

NSString * (^geshihua)(int) = ^(int a){

        return  [NSString stringWithFormat:@"%d",a];

    };

    

    NSLog(@"%@",geshihua(19));



这只是基础篇,后面的高级应用还在学习中,感兴趣留意后面的更新,有错误的 请在下面指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值