美文网首页
课程笔记:第7章 Block相关面试问题

课程笔记:第7章 Block相关面试问题

作者: 飘摇的水草 | 来源:发表于2022-04-17 11:27 被阅读0次
image.png

1、问:什么是Block?
Block是将函数及其执行上下文封装起来的对象
Block的调用,既是函数的调用

可以使用 clang -rewrite-objc file.m来查看block编译之后的文件内容


block目录 image.png

其中连同所有权修饰符一起截获指的是:如果对象是用__unsafe_unretained和__strong修饰的,那么连这两个词也一块截获。
__unsafe_unretained id unsafe_obj;
__strong id strong_obj;

__block修饰符
一般情况下,对被截获变量进行赋值操作需添加 __block修饰符

赋值 != 使用

image.png

上面代码可以正常执行
array是局部变量,会被捕获进去,捕获进去的是NSMutableArray *array,array是指针变量,array本身不可以做修改,但是array指针指向的变量可以修改,也就是[array addobject:@123]没有问题

image.png

上面代码不可以执行
array = [NSMutableArray array];要修改的是指针变量array本身存储的内容,是不可以的。

相关文章

网友评论

      本文标题:课程笔记:第7章 Block相关面试问题

      本文链接:https://www.haomeiwen.com/subject/ylfyultx.html