iOS如何實現傳值 block傳值

2021-06-22 12:40:28 字數 1407 閱讀 7516

先來複習下如何定義乙個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

呼叫含有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...