iOS开发iOS 开发每天分享优质文章将来跳槽用

为什么我选择使用Blocks(块)

2016-06-08  本文已影响472人  shawenlx


什么是Blocks

Blocks语法

//例如
^int (int count) { return count + 1; }
^ {
      printf("Hello, blocks");
}

将Blocks声明为属性


将Blocks作为参数传入方法中

//定义:
typedef void(^Block)(int a);
- (void)nslogParameterWithBlock:(Block)block { 
    if (block) { 
        block(10); 
    }
}
//赋值并调用
[object nslogParameterWithBlock:^(int a) { 
    NSLog(@"%d", a);
}];

Blocks截获自动变量值

int val = 10;
void  (^block)(void) = ^ { printf("val = %d", val); };
val = 20;
block();  //此处调用block,打印为val = 10;

__block 关键字

__block int val = 10;
void  (^block)(void) = ^ { printf("val = %d", val); };
val = 20;
block();  //此处调用block,打印为val = 20;

总结:

上一篇 下一篇

猜你喜欢

热点阅读