Block使用总结

2015-09-13  本文已影响66人  程序媛coco
  1. Block和函数很像,具有如下特性:
  1. 使用的形式举例:
    1)带参数的形参
int (^heblock)(int,int) = ^(int a, int b){
     return a + b;
};

2)不带形参的block,如果没有形参可以省略后面的小括号

void (^myblock)() = ^{
      NSLog(@“我的BLOCK”);
};

3)利用typedef定义block类型

typedef int (^myblock)(int, int);
myblcok he = ^(int a, int b){
  return a + b;
};
int c = he(19,9); // 将19和9的和赋值给c;
  1. block访问外面的变量
  1. 在ARC情况下:(用__weak / 下面的方式修饰)
// 在HHLoginViewController.h定义一个完成block
@property (nonatomic, copy) void(^dosomeComplish)();
HHLoginViewController *loginVC = [[HHLoginViewController alloc] init];
        //使用__weak避免循环引用
        __weak typeof(self) weakSelf = self;
        loginVC.dosomeComplish = ^{
            [weakSelf dosome];
        };
  1. 在MRC即非ARC情况下:只能用__block
上一篇 下一篇

猜你喜欢

热点阅读