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

相關文章
相關標籤/搜索