亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

iOSBlock的使用

2019-11-14 18:41:23
字體:
來源:轉載
供稿:網友

一 .最簡單的block使用
  使用block的三個步驟:1.定義block變量 2.創建block代碼塊 3.調用block匿名函數

  定義一個block的構成包括:返回值,block名,參數類型。

  block代碼塊作為一個匿名函數是可以被寫在其他方法中的,所以一般我們將block代碼塊寫在其他方法里,調用該方法的時候block代碼塊將不會被執行,只有回調block代碼塊的時候,才會執行。

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@PRoperty(nonatomic,copy) void(^myBlock)(int);//1.聲明一個block變量,直接將block聲明成一個屬性變量更方便實用。

@end

ViewController.m

#import "ViewController.h"

#import "NewViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

 //注意:先加載寫block代碼塊的方法

    [self blockTest];

 }

-(void)blockTest{

    //2.在方法里面寫block代碼塊

    _myBlock = ^(int a){

        NSLog(@"%d",a);

    };

}

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    //3.調用block匿名函數

    _myBlock (10);

    NewViewController * newViewController = [[NewViewController alloc]init];

    newViewController.block = _myBlock;

    [self presentViewController:newViewController animated:YES completion:^{

     }];

}

@end

   上面代碼,在ViewController里面實現了block實現的三個步驟,該block的功能就是打印參數值。

  

  touch方法實現從ViewController到NewViewController的跳轉,同時將ViewController里面的block即myBlock賦給NewViewController里定義的block,使得兩個block實質上成為同一個block,這樣,在NewViewController里面就耶可以調用ViewController里的代碼塊了。

NewViewController.h

#import <UIKit/UIKit.h>

#import "ViewController.h"

@interface NewViewController : UIViewController

@property(nonatomic,copy)void(^block)(int a);

@end

NewViewController.m

#import "NewViewController.h"

@interface NewViewController ()

@end

@implementation NewViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    self.view.backgroundColor=[UIColor grayColor];

 }

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{

    self.block(100);

    [self dismissViewControllerAnimated:YES completion:^{

    }];

}

@end

二.block其他定義類型

  通過typedef聲明block類型(因為block沒有類型,用typedef聲明一個類型)。如下兩個聲明了兩個finishedblock類型的block。

   

#import <UIKit/UIKit.h>

typedef int(^FinishedBlock)(int);     //此處FinishedBlock不是block變量,而是一種類型,即FinishedBlock類型。

@interface ViewController : UIViewController

{

  FinishedBlock block1;               //typedef聲明一個FinishedBlock后,就可以用該類型定義block變量。

}

@property(nonatomic,copy) FinishedBlock block2;

@end

 

 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    block1 = ^(int a){

        NSLog(@"%d",a);

        return a;

  };

    _block2 = ^(int a){

        NSLog(@"%d",a);

        return a;

    };

    

    FinishedBlock block3 = ^(int a){

        NSLog(@"%d",a);

        return a;

    };

    block3(30);//回調

    

    [self test];

}

-(void)test{

    //回調

    block1(10);

    _block2(20);

}

@end

打印結果:

 

2015-07-15 20:57:22.226 Test[618:21849] 30

 

2015-07-15 20:57:22.227 Test[618:21849] 10

 

2015-07-15 20:57:22.227 Test[618:21849] 20

 三.block作為參數傳遞

 

#import <UIKit/UIKit.h>

 

typedef int(^FinishedBlock)(int);

 

@interface ViewController : UIViewController

 

@end

 

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {

    [super viewDidLoad];

    [self testBlock:^int(int a) {

        NSLog(@"%d",a);

        return a;

    }];

}

-(void)testBlock:(FinishedBlock)block{

    block(1000);//回調

}

@end

 

 

初學iOS,如有錯誤,請不吝賜教!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本高清不卡在线| 久久久久久12| 国产欧美精品日韩精品| 亚洲欧洲日产国码av系列天堂| 日本91av在线播放| 亚洲香蕉成视频在线观看| 日韩av电影在线免费播放| 国产精品视频久久久| 欧美床上激情在线观看| 亚洲精品456在线播放狼人| 亚洲欧美日韩第一区| 91精品免费久久久久久久久| 欧美日韩999| 日韩av影院在线观看| 久久99青青精品免费观看| 97国产suv精品一区二区62| 欧美日韩国产成人| 高跟丝袜一区二区三区| 日韩精品一区二区三区第95| 69**夜色精品国产69乱| 欧美另类极品videosbestfree| 亚洲欧美国产视频| 色偷偷噜噜噜亚洲男人| 欧美性xxxxhd| 亚洲色图国产精品| 成人福利在线视频| 久久这里只有精品99| 国内自拍欧美激情| 热久久视久久精品18亚洲精品| 亚洲自拍欧美色图| 欧美老女人www| 国产丝袜一区二区三区免费视频| 日韩中文视频免费在线观看| 日韩免费观看视频| 午夜精品福利在线观看| 九九精品在线播放| 久久精品电影网站| 最近中文字幕mv在线一区二区三区四区| 欧美色videos| 美女久久久久久久久久久| 日韩中文字幕国产精品| 成人在线播放av| 日韩高清欧美高清| 正在播放亚洲1区| 精品国产一区二区三区在线观看| 久久综合色影院| 亚洲乱码国产乱码精品精| 日本精品视频在线观看| 亚洲а∨天堂久久精品9966| 久久久久久美女| 欧美黄色片免费观看| 日韩在线视频网| 国产中文字幕91| 亚洲电影第1页| 日韩国产激情在线| 欧洲日本亚洲国产区| 精品久久久国产| 中日韩美女免费视频网址在线观看| 91久久久久久久| 国产日本欧美在线观看| 中文字幕亚洲综合久久| 中文字幕在线看视频国产欧美在线看完整| 欧美黑人狂野猛交老妇| 国产精品一区二区性色av| 亚洲激情在线观看视频免费| 青草青草久热精品视频在线观看| 国产精品成人va在线观看| 欧美激情中文字幕乱码免费| 日韩大胆人体377p| 亚洲欧美国产日韩中文字幕| 久久国产精品久久国产精品| 日韩精品在线视频美女| 久久久亚洲影院你懂的| 中文字幕亚洲一区二区三区五十路| 日韩精品999| 亚洲精品电影在线观看| 91免费看片在线| 亚洲精品中文字幕av| 这里只有精品丝袜| 欧洲亚洲女同hd| 久久国产精品久久久久久| 国产精品无码专区在线观看| 国产成人高潮免费观看精品| 国语自产精品视频在线看抢先版图片| 国产精品偷伦免费视频观看的| 欧美交受高潮1| www.xxxx欧美| 国产日韩在线观看av| 亚洲国产精品美女| 精品一区二区三区四区| 久久久av一区| 欧美在线观看日本一区| 成人欧美一区二区三区在线| 91亚洲精品久久久久久久久久久久| 欧美激情亚洲视频| 91成人福利在线| 中文字幕日韩综合av| 国产精品自拍偷拍| 国产精品久久久一区| 欧美激情精品久久久久久大尺度| 日日摸夜夜添一区| 91精品国产91久久久久福利| 日韩精品免费观看| 日韩在线观看网站| 最近更新的2019中文字幕| 91免费国产视频| 最近2019中文字幕第三页视频| **欧美日韩vr在线| 亚洲最大的av网站| 亚洲人成电影网站色xx| 日本精品va在线观看| 亚洲国产精品人人爽夜夜爽| 国产精自产拍久久久久久| 日韩欧美成人区| 欧美日韩亚洲系列| 精品国产乱码久久久久久虫虫漫画| 欧美中在线观看| 久久久久99精品久久久久| 欧美黄色成人网| 久久电影一区二区| 亚洲色图13p| 欧美片一区二区三区| 国产成人精品免高潮费视频| 欧美国产精品va在线观看| 亲爱的老师9免费观看全集电视剧| 欧美成人精品三级在线观看| 日韩精品欧美激情| 国产精品一区二区av影院萌芽| 亚洲精品一区中文字幕乱码| 亚洲精品国产品国语在线| 亚洲网站在线看| 亚洲激情免费观看| 亚洲天堂成人在线视频| 91精品一区二区| 亚洲乱码国产乱码精品精天堂| 国产精品自产拍在线观看中文| 国产视频亚洲视频| 久久视频免费观看| 久久久久国色av免费观看性色| 精品国内产的精品视频在线观看| 欧美黑人xxx| 国产丝袜一区视频在线观看| 国产精品亚洲美女av网站| 中文字幕综合一区| 亚洲天堂开心观看| 欧美黑人狂野猛交老妇| 粉嫩av一区二区三区免费野| 羞羞色国产精品| 97香蕉久久超级碰碰高清版| 亚洲精品ady| 亚洲欧美日韩天堂| 久久久亚洲国产天美传媒修理工| 国产精品av在线| 久久精品国产成人| 国产ts一区二区| 国产精品老女人视频| 九九久久精品一区| 日韩一级黄色av| 色老头一区二区三区| 久久精品国产99国产精品澳门| 91精品国产91久久久久久久久| 国产精品99久久久久久www| 日韩在线视频免费观看| 在线视频日本亚洲性|