Block的安全用法

2021-09-11 12:23:30 字數 745 閱讀 6365

block用的越來越多

block被濫用

block被亂用

現在總結乙個安全可靠的使用方法:

__weak typeof(self) weakself = self;

void (^myblock)(void) = ^;

複製**

是的,就是這個模式:

在block外定義乙個weak self.

在block內對weak self定義乙個strong self。

可以新增兩個巨集定義:

/******************** 快速的定義乙個weakself 用於block裡面  ***************/

#define ws(weakself) __weak __typeof(self) weakself = self

#define ss(strongself) __strong __typeof(weakself) strongself = weakself;

複製**

使用的時候就比較方便:

ws(weakself);

void (^myblock)(void) = ^;

複製**

再也沒有記憶體洩露,迴圈應用,提前釋放的問題。 輕輕鬆鬆做程式設計師。

// end markdwon左邊和右邊可不可以對齊啊,看著真的是d疼

block用法小計

預設情況下,任何block都是在棧中,隨時可能會被 對block設定copy屬性,block的記憶體就會放到堆裡面。book b book alloc init b.block 如果像上述寫法block所指向的 塊會強引用book的記憶體位址,使得book物件不能釋放,造成記憶體洩露。book b ...

block 基本用法

專門處理 需要重複呼叫的 block 返回值相同,引數相同 在.h檔案中,宣告 typedef void typedefblock nsstring typedef int typedefbock2 inta,intb ibaction testaction id sender oc語言 self ...

Block用法解析

block 塊是對c做出的乙個補充,初次體驗 塊,無比的不適應。古怪的語法確實讓人不易入門甚至精通。但若能夠深入精通block的使用,會給 帶來層次上的提公升。block就是一段在將來被執行的 塊返回值型別 形參型別1 形參1,形參型別2 形參2,塊返回值型別 塊變數名 形參型別1,形參型別2,定義...