閉包(block),閉包block

來源:互聯網
上載者:User

閉包(block),閉包block

block主要解決反向傳值和傳值問題

1.block申明的公式       傳回值類型 (^名字)(參數列表);

2.block實現的公式       名字= ^(參數列表){};

3.局部變數                  定義一個圖片的名字的block

void (^imageNameBlock)(NSString *imageName);//申明

__block UIImage *image; //iamge == nil 如果想修改外部變數的值 需添加__block修飾  也就是說如果要在block內部改變外部變數的狀態時,需要使用__block修飾

4.實現block

imageNameBlock = ^(NSString *imageName){//實現

        image = [UIImage imageNamed:imageName];

        self.view.backgroundColor = [UIColor colorWithPatternImage:image];

    };

5.調用block

imageNameBlock(@"photo.png");//調用

 

反向傳值:

1.在需要傳值的類裡面寫block,即聲明

@property (nonatomic,copy)void (^block)(NSString *content);//block是分配在棧裡面的,不需要程式員管理記憶體

2.需要接收值的地方實現block

 NextViewController *nextView = [[NextViewController alloc]init];

    nextView.block = ^(NSString *content){

        NSLog(@"%@",content);

        labelTextBlock(content);

    };

3.在需要傳送值的地方  調用block

block(@"sfasfaklgjgjkdsjkns");

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.