Block 底层原理(这里只讲两点)

2021-04-12  本文已影响0人  长弓猎人

1.在block内部修改外部变量值时,外部变量为啥要加__block修饰

答:只有用__block修饰后,在编译时,外部变量才会将它的指针传递给block内部变量,          这时候内外变量指向同一块内存区域,所以修改了内部变量值后外部变量值也会自然而然的改变

2.block定义好后,为啥需要调用才能被执行

答:block其实是OC对象,在编译时本质上也是个结构体,这个结构体内部定义了个函数,因为函数是需要调用才能被执行,所以block就需要调用才能执行

上一篇下一篇

猜你喜欢

热点阅读