9.22 __block

__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>

Paste_Image.png

输入bk_自动就弹出了很多方法。是不是方便多了。

Paste_Image.png

ps:
早上出现的报错信息:

  1. duplicate symbol _b in:
  2. /ld: 1 duplicate(重复) symbol(声明) for architecture x86_64
  3. clang : error: linker command failed with exit code 1 (use -v to see invocatsion)

command + B Bulid过程
源文件
目标文件
链接 (上面的问题属于链接出错,重复声明)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容