Blook解释
2018-03-16 本文已影响0人
TimMei3345
代码块block,对C语言的拓展,一种特殊的数据模型,可以是变量、参数、返回值,用在GCD、动画、类的回调
__block可以改变局部变量的原理,通过clang查看OC转化C++代码
// OC代码如下
void(^myBlock)() = ^{
NSLog(@"global = %d", global);
};
// 转为C++代码如下
void(*myBlock)() = ((void (*)())&__main_block_impl_0((void *)__main_block_func_0, &__main_block_desc_0_DATA, (__Block_byref_global_0 *)&global, 570425344));
__block修饰的变量,修改了block 指向的指针指向局部变量,达到修改局部变量的目的
UIView继承自UIResponder,继承自NSObject