為什麼要使用block變數呢?
因為當我們的程式比較繁雜的時候,我們在乙個函式中要呼叫乙個函式,還需要在外邊來定義,實現,很不方便,但是有了block變數我們就可以在乙個函式的內部來定義乙個block變數,相當於又在函式的內部來定義了乙個函式.
int (^max)(int x,int y) = ^(int x,int y)//求兩個數的最大值
;nslog(@"%d",max(5,10));
int (^min)(int x,int y) =^(int x,int y)//求兩個數的最小值
;nslog(@"%d",min(5,10));
其中block變數的型別為:int(^)(int x ,int y);
max 為變數名,一般看函式是什麼型別,只需要把函式名去掉然後剩下的就是函式的型別.
^(int x ,int y)
上面的對block變數進行初始化.
當在block內部使用block外部定義的區域性變數時,如果變數沒有被__block修飾,則在block內部是唯讀的,不能對它修改,如果想修改,變數前必須要有__block修飾
__block的作用是告訴編譯器,在編譯時在block內部不要把外部變數當做常量來使用,還是當做變數來使用.
如果在block中訪問全域性變數,就不需要__block修飾,比如a.
Block的安全用法
block用的越來越多 block被濫用 block被亂用 現在總結乙個安全可靠的使用方法 weak typeof self weakself self void myblock void 複製 是的,就是這個模式 在block外定義乙個weak self.在block內對weak self定義乙個...
Block的簡單用法
1.block簡單用法 import 1.求兩個數的和 void createblock 1.1呼叫block int c sumblock 10,9 nslog d c 2.求兩個數的平方 void sqrtblock 2.1呼叫block int d sqrts 10,10 nslog d d ...
OC中的block的用法總結
1.block 的基本概念 了解 block是乙個型別,可以定義變數,它的變數是用來存 塊.2.block的基本用法 固定寫法牢記 block最簡單形式 定義格式 void block名 使用格式 block名 定義是,把block當初資料型別 特點 1,型別比函式定義多了乙個 2.設定數值,有乙個...