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