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

上一篇 下一篇

猜你喜欢

热点阅读