__block
当我们需要在block里更改一个实例变量时,需要加上__block, 否则函数内变量不会发生改变。
__block int a = 1;
NSLog(@"&out_a = %p\n",&a);
void (^demoBlc)(void) = ^ {
a = 5;
NSLog(@"_a = %p\n",&a);
NSLog(@"a = %d",a);
};
demoBlc();
加强原生控件UI开头,NS开头的控件: BlocksKit
https://github.com/zwaldowski/BlocksKit
主要是节省代理delegate的方法。
可以直接在cocoapods搜索BlocksKit安装
使用时导入头文件
import <需要用到的文件夹名称.h>
输入bk_自动就弹出了很多方法。是不是方便多了。
ps:
早上出现的报错信息:
- duplicate symbol _b in:
- /ld: 1 duplicate(重复) symbol(声明) for architecture x86_64
- clang : error: linker command failed with exit code 1 (use -v to see invocatsion)
command + B Bulid过程
源文件
目标文件
链接 (上面的问题属于链接出错,重复声明)