Objective-C block

<pre code_snippet_id="449894" snippet_file_name="blog_20140813_1_1004310" name="code" class="objc"><span style="font-size:18px;">block:匿名函数. 不用在.h和.m中声明和实现的函数 可以直接在主函数中嵌套定义实现block的价值:block定义的函数不用在.h和.m中写声明和实现,可以直接在主函数中定义,即可以函数嵌套定义.它可以使用在实现一个函数的小步骤时,能够省略.h和.m中的代码,并且对于相同类型返回值和相同类型参数的一系列函数,可以只定义一个函数框架,随时调用的时候填写函数体拿来调用,节省时间.</span>
 

block的使用格式:返回值类型(^函数名)(参数类型) = ^(参数类型){ 函数体 };

使用时可以直接调用函数

例如:

<span style="font-size:18px;">int (^block2) (int x, int y) = ^(int x, int y) {
      return x < y ? x : y;
};</span>

可以用typedef对block重命名

例:

<p style="margin-top: 0px; margin-bottom: 0px; font-family: MingLiU;"><pre name="code" class="objc"><span style="font-size:18px;">typedef  int (^aa)();
        aa sum = ^(int x, int y){
            return x + y;
        };
        int sum1 = sum(5, 10);
        NSLog(@"%d", sum1);</span>

 

注意点:

1.如果在block外面定义的局部变量在block内部使用且重新赋值时,要用__block对该变量进行修饰,如果不用__block修饰,系统默认该变量是一个readonly(只读的)类型的变量,在block内部可以使用但是不能重新赋值

2.如果是全局变量在block中使用,则不需要被__block修饰,可以直接使用,赋值

3.如果在.m文件中的全局变量,想在主函数中使用,可以在主函数的变量前加修饰词 extern (例如:extern int a)

4.如果在不同文件中祥使用相同名字的全局变量,可以再一个变量前加修饰词 static (例如:static int a)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值