Block 底层原理(这里只讲两点)
2021-04-12 本文已影响0人
长弓猎人
1.在block内部修改外部变量值时,外部变量为啥要加__block修饰
答:只有用__block修饰后,在编译时,外部变量才会将它的指针传递给block内部变量, 这时候内外变量指向同一块内存区域,所以修改了内部变量值后外部变量值也会自然而然的改变
2.block定义好后,为啥需要调用才能被执行
答:block其实是OC对象,在编译时本质上也是个结构体,这个结构体内部定义了个函数,因为函数是需要调用才能被执行,所以block就需要调用才能执行