__weak __typeof(self)weakSelf = self;
object.block = ^{
__strong typeof(weakSelf)strongSelf = weakSelf;
// code here
}
- 在 block 之前声明一个 weakSelf 指向 self 是为了避免循环引用。
- 在 block 中声明 strongSelf 是一旦进入了 block , 就不允许 self 在执行过程中释放掉。block 执行完之后会 strongSelf 会自动释放,不会出现循环引用的问题。