iOS之 block,代替代理作为回调函数

最近在弄一个视频会议的项目,但今天要说的跟视频基本没关系,我们来说一下在一个view中创建一个button,在controller中加载这个view

当button被点击后将时间响应传递给controller,去做其他修改

大致就是这个环境下,我们很快想到用代理,当然可以,这里不阐述代理的实现过程我们用block来实现直接上代码

 xxxx.h
@interface xxxx : UIView
//这里一定要给block 的copy属性,具体原因请参照我关于block的文章
@property (nonatomic, copy) void (^ButtonBlock)(BTNACTION);
@end xxxx.m
//这里是button点击事件
-(void)menuAction:(UIButton *)btn
{
if(_ButtonBlock) _ButtonBlock( 这里传你要的参数或者你不传参数就什么都不写); }

2,这里要去给controller(连线了)有点跟代理很像

     xxxx = [[xxxx alloc]initWithFrame:callUseLocalView.frame];

 //    __weak __typeof(self)weakSelf = self;

     xxxx.ButtonBlock = ^(BTNACTION action//我这里传的是结构体如果你不需要传参数这里忽略){

     //这里就是当你执行block,就会调用的 ,如果这里用到self,请注意循环引用问题
};

每天记录一点点,让自己过得更充实

顺便吐槽下房租又涨了,搬砖,继续搬砖

上一篇:java 版本SQLHelper


下一篇:(六)javascriptJS中定义对象的几种方式(转)