block用的愈来愈多程序员
block被滥用安全
block被乱用bash
如今总结一个安全可靠的使用方法:spa
__weak typeof(self) weakSelf = self;
void (^myBlock)(void) = ^{
__strong typeof(weakSelf) strongSelf = weakSelf;
// Do something
};
复制代码
是的,就是这个模式:3d
能够添加两个宏定义:code
/******************** 快速的定义一个weakSelf 用于block里面 ***************/
#define WS(weakSelf) __weak __typeof(self) weakSelf = self
#define SS(strongSelf) __strong __typeof(weakSelf) strongSelf = weakSelf;
复制代码
使用的时候就比较方便:cdn
WS(weakSelf);
void (^myBlock)(void) = ^{
SS(strongSelf);
// Do something
};
复制代码
再也没有内存泄露,循环应用,提早释放的问题。 轻轻松松作程序员。blog
参考文献:内存
// END markdwon左边和右边可不能够对齐啊,看着真的是D疼get