先來複習下如何定義乙個block
返回值 (^block名)(引數列表) = ^(引數列表);
如何使用block:
block名(引數);
例如:
函式中引數為block型別// block的寫法
//定義block
void (^block)(int) = ^(int a);
// block的使用(執行block中的**)
block(10);
// 可以給同型別的block型別賦值
void (^block1)(int) = block;
呼叫含有block型別的引數的方法- (void)textblock:( void (^)(int) )block
[self textblock:block];
臨時定義乙個block引數
[self textblock:^(int a) ];
使用重定義快速定義乙個block
// 把void(^)(int) 型別重定義為block
typedef void(^block)(int);
// 利用新定義的block變數 定義
block b = ^(int a );
現在來講如何利用block傳值
第一步:
// 在第乙個頁面中定義乙個block 確定需要進行的操作
void (^changecolorblock)(uicolor *color) = ^(uicolor *color) ;
第二步:
在第二個頁面類中宣告乙個屬性
// 重定義乙個block型別
typedef void(^bl)(uicolor *color);
//定義乙個block屬性 一定要用copy屬性
@property (nonatomic, copy) bl block;
第三步:
給第二個頁面的block賦值
secondvc.block = changecolorblock;
第四步:
在第二個介面中比如說按了乙個按鈕,把值傳回到第乙個介面類中
- (void) btnclick:(uibutton *)btn
記憶體管理:
-(void)dealloc
iOS傳值之block傳值 一
ios4.0系統已開始支援block,在程式設計過程中,blocks被obj c看成是物件,它封裝了一段 這段 可以在任何時候執行。blocks可以作為函式引數或者函式的返回值,而其本身又可以帶輸入引數或返回值。它和傳統的函式指標很類似,但是有區別 blocks是inline的,並且它對區域性變數是...
iOS如何實現傳值 協議傳值
b a 傳值 步驟 1.寫協議 2.新增 屬性 3.呼叫 人 方法 4.給 人新增協議 5.設定 人 6.實現協議方法 例子 secondviewcontroller.h secondviewcontroller.h 協議傳值 created by 薩斯輩的呼喚 on 14 6 13.import ...
ios開發的block反向傳值
block 的反向傳值,一直以來都是copy,今天寫出來用來加深印象,也給一些懶哥們copy的方便些。不多說,直接上 import 第一步 第二個頁面.h typedef void secondvcblock nsstring inte ce secondviewcontroller uiviewc...