Block:保存一端代码,比方法和函数要灵活
定义一个普通的Block
普通的Block,即无参数无返回值的Block,格式如下:
返回值 (Block标识 Block名) (参数) = Block标识 参数 {代码块};
void (^myBlock) () = ^ () {};
快捷键:inlineBlock
Block作参数(把Block名提出来放在后面做参数名,其余部分做参数类型):
-testBlock:(Block类型(Block标识)(Block的参数))参数名;
-testBlock:(void(^)())myBlock;
Block调用
格式:
Block名(参数);
myBlock();
注意:Block会先把需要执行的代码保存起来,在声明和定义的时候不会调用
Block传值
- 接收方需要设置一个属性来接收值
- 接收方定义Block来接收值
- 什么时候传值就在什么时候调用Block
注意:Block一般用于传值,而代理一般在封装控件的时候使用,因为代理扩展性强一些