iOS学习篇章4--block
来源:互联网 发布:淘宝dw旗舰店是真是假 编辑:程序博客网 时间:2024/06/13 08:22
Block
1、定义:
定义一个block变量,就相当于定义一个函数,使用「^」运算子来定义一个block 变量;
int (^myBlock) (int a,int b) = ^(int a,int b){ return a+b; };
即:具有内嵌功能的匿名函数;
Block可以定义在方法内部,也可以定义在方法外部;
定义在方法外部,就是一个全局的变量;
定义在方法内部,就是方法的私有属性;
2、定义的格式:
回传值(^名字)(参数列);
int (^myBlock) (int a,int b)行为主体:
^(传入参数列){行为主体};
^(int a,int b){ return a+b; };
3、使用:
int sum = myBlock(11,22);
4、意义:
1.从定义来说,Block是可以代替回调函数,或者是delegate;
2.用来表示、简化一小段的程式码;
3.适合用来建立一些同步执行的程式片段、封装一些小型的工作;
4.用来做为某一个工作完成时的回传呼叫(callback);
5、__block关键字:
Block的{}体内,是不可以对外面的变量进行更改的;
加上__block修饰词,可以在block 中被修改。
__block int x = 123 ;void (^ModifyX)( int ) = ^( int y){x = x + y; NSLog("%@",x);};ModifyX(9);NSLog("%@",x);
6、__weak关键字:
__weak 在Block程序体内部访问外部的视图时(如UIButton,UIViewController等),
一定要加上__weak 防止,Block 对外部的UIViewController加强引用;即避免循环引用;尤其是在使用Self 的关键字,实际就是对UIViewController的循环引用;
__weak ShopViewController *mShopVC = self;
然后再Block 使用 mShopVc 代替self的循环引用;
7、使用:
使用Block 最多的还是传递参数,和回调;
讲Block做为函数参数进行的传递;
以及现有的iOS中的包含的回调,GCD,UIViewController之间的跳转的动画,都是使用的Block;
0 0
- iOS学习篇章4--block
- iOS基础学习篇章前言
- iOS学习篇章5--GCD
- iOS学习篇章2--Category类别
- iOS学习篇章3--SEL与@selector
- Android学习篇章4-MyButton
- iOS Block学习
- iOS Block学习
- iOS Block学习
- iOS Block学习
- ios Block语法学习
- iOS block学习
- iOS 学习Block
- iOS Block学习
- ios学习之block
- iOS Block 学习笔记
- iOS学习-Block使用
- iOS 学习之 Block
- 初学MATLAB笔记-绘图
- js播放背景音乐
- Error之sqlite中查询时的limit出错
- 关于httpclient的工具类
- Hadoop 案例12----自连接问题
- iOS学习篇章4--block
- 前后台切换命令(ctrl+z jobs bg fg &)
- 字符串生成32位MD5码
- 欧拉四面体体积应用
- 创建守护进程的步骤
- linux系统下获取本地IP地址方法
- java实例化对象的方法
- OpenStack+Ceph存储空间回收
- <Swift>IOS开发Swift语言中应用CoreData之数据存取