Block的安全用法

块块块

block用的愈来愈多程序员

block被滥用安全

block被乱用bash

安全用法

如今总结一个安全可靠的使用方法:spa

__weak typeof(self) weakSelf = self;
    void (^myBlock)(void) = ^{
        __strong typeof(weakSelf) strongSelf = weakSelf;
        // Do something
    };
复制代码

是的,就是这个模式:3d

  1. 在block外定义一个weak self.
  2. 在block内对weak self定义一个strong self。

快捷用法

能够添加两个宏定义: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

相关文章
相关标签/搜索