iOS面试相关

iOS Block截获变量

2018-11-01  本文已影响7人  没八阿哥的程序

什么是Block

block是将函数及其执行上下文封装起来的对象

关于Block截获变量

int multiplier = 6;
int(^Block)(int) = ^int(int num ){
return num * multiplier ;
};
multiplier = 4;
NSLog("result is%d" ,Block(2) ) ;

来看这道经典的block面试题,它的结果是12还是8?(答案为12)

static int multiplier = 6;
int(^Block)(int) = ^int(int num ){
return num * multiplier ;
};
multiplier = 4;
NSLog("result is%d" ,Block(2) ) ;

而这个答案为8。这是因为:

上一篇 下一篇

猜你喜欢

热点阅读