block的使用总结

    在iOS开发中,为了性能和维护更好些,block的使用是一个不可回避的话题。具体使用方法,大同小异。在不同的条件下,定义形式有点差别,为了备忘,总结如下。

   1、用 typedef 定义

        格式如下:typedef  void (^onClick)(int index);

       在实现文件直接使用,如:

       onClick click = ^(int index) {
             ShowLog(@"索引为 %d 的控件被点中。", index);
       };

2、直接定义

      格式如下:void(^onClick)(int index) =  ^(int index) {
             ShowLog(@"索引为 %d 的控件被点中。", index);
       };

3、作为属性传递

       格式如下(注意,一般情况下属性关键词要用 copy 不要用其他关键词): @property(nonatomic, copy) void(^onClick)(int index);

       实现文件中实现:

      【实例化的对象】.onClick =  ^(int index) {
             ShowLog(@"索引为 %d 的控件被点中。", index);
      };

4、作为参数传递

       格式如下(主要区别是 Block 的名称作为方法参数,放在后面,并且整个 block 声明作为参数类型用圆括号括起来):【-或者+】 (void)drawDockBlock:(void(^)(int index)) onClick;

      实现文件中实现:

      [ 【实例化的对象/或者静态方法的类名称】drawDockBlock:^(int index) {

             ShowLog(@"索引为 %d 的控件被点中。", index);
      }];

   如果有总结不到位的地方,望补充。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值