iOS Block 的具体使用
2016-02-03 23:11
274 查看
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的代码块里面修改了。
第一种 : 可以当函数或者是变量使用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的代码块里面修改了。
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- Lua中的函数精讲笔记
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中调用C++函数示例
- Lua实现split函数
- Lua常用时间函数使用实例