美文网首页
课程笔记:第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