你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS編程技術 >> iOS Block的簡單使用

iOS Block的簡單使用

編輯:IOS編程技術

目錄:本文將分三個部分講解block塊的基本用法,由於本人水平有限,不足之處還望指正,謝謝!

一、block塊的基本用法:

相信大家都很熟悉了,下面直接上代碼:

    //1,block初探,無參數,無返回值
    void (^MyBlock)(void) = ^(void){
    
        NSLog(@"2,打印出來了,我就是block,無參數,無返回值");
    };
    NSLog(@"1");
    MyBlock();
    
    //2,有參數,無返回值
    void (^MyblockTwo)(int a) = ^(int a){
    
        NSLog(@"@ = %d我就是block,有參數,無返回值",a);
    };
    
    MyblockTwo(100);
    
    //3,有參數,有返回值
    int (^MyBlockThree)(int, int) = ^int(int a,int b){
    
        NSLog(@"%d我就是block,有參數,有返回值",a + b);
        return a + b;
    };
   
    MyBlockThree(12,56);

以上三個是block最基本的用法,也是局部的block塊,就不多說了,這主要爭對初學者,主意block回調的時機。

二、block塊的進階用法:

我的代碼是在實現文件中

聲明:

- (void)getNameBlock:(void(^)(NSString *string))myBlockName;

實現:

- (void)getNameBlock:(void (^)(NSString *))myBlockName{

    NSLog(@"我先走一步了哈");

    [self laterGoBlock:myBlockName];  

}

調用:

[self getNameBlock:^(NSString *string) {

        NSLog(@"這次我小馬哥真走了哈,%@",string);

    }];

看這時候我又定義了一個block,這個block是全局的,在.h文件中定義如下:

聲明:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC;

實現:

- (void)laterGoBlock:(void(^)(NSString *))myBlockJC{

     myBlockJC(@"我是小馬哥,知道我的目的了吧");

}

看我的目的是在這個方法中實現block的回調,如果這你理解了,那麼不同界面用block傳值就很簡單了。未完待續

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved