iOS Block 的具体使用

来源:互联网 发布:ssh 端口修改 编辑:程序博客网 时间:2024/06/05 10:33

block 主要有两种用途:

第一种 : 可以当函数或者是变量使用block;
eg:
NSString (^myBlock)(NSString , NSString ) = ^(NSString *str1 , NSString *str2){
return [str1 stringByAppendingString:str2];
};
首先 先解释一下这段代码:
block 的标志性符号就是 “^”,第一个NSString 是返回值类型 我们可以讲NSString换成int void float 等类型,这有三个小括号第一个括号中的myBlock 是block的名称,第二个,第三个括号里面的是参数,第二个里面的参数是形参类型,第三个括号是对第二个括号里面的参数的细解。
这段代码可以放在 方法里面,也可以想函数方法一样写在@implementation @end 中间 ,调用方法也像函数一样,上面的block的调用方法:myBlock(@”i am” , @”Leon”);

第二种:页面间传值
比如A页面想把值传到第二个页面,首先在A页面声明一个block 和一个供给b页面调用的方法。由A页面跳转到B页面时在A页面将要消失的一瞬间把值传过去,在b页面则接受传过来的值,这种方法类似于委托代理方法。(涉及到的控制器的生命周期和委托代理还没有整理,下次整理)。

关于block还有 一些注意点:
1》block内部是不能够改变block外面的值的。如果要修改的话要在变凉的声明前面添加__block eg:__block int a = 10;这样的话就可以在block的代码块里面修改了。

0 0
原创粉丝点击