美文网首页
Block:截获变量与__block

Block:截获变量与__block

作者: 愤怒的牛牛 | 来源:发表于2019-07-26 15:16 被阅读0次

截获类型

1.局部变量 (基本数据类型/对象类型)

2.静态局部变量

3.全局变量

4.静态全局变量

对于基本数据类型的局部变量截获其值。

对于对象类型的局部变量连同所有权修饰符一起截获。

以指针形式截获局部静态变量。

不截获全局变量、全局静态变量。

***********************************华丽丽的分割线***********************************

__block 修饰符

对局部变量(基本数据类型/对象类型)进行赋值时,需要添加__block。

赋值 ≠ 使用

__blockNSMutableArray*dataArray =nil;

    void(^Block) (void) = ^

    {

        dataArray = [NSMutableArrayarray];

    };

    Block();

需要__block修饰,block 内部对局部变量的对象赋值

NSMutableArray *dataArray = [NSMutableArray array];

    void(^Block) (void) = ^

    {

        [dataArrayaddObject:@"不需要__block"];

    };

    Block();

这只是使用操作,不需要__block。

对静态局部变量/全局变量/静态全局变量进行赋值的时,不需要__block。

静态局部变量是通过指针形式操作使用对象的,相当于操作的是 block 外部的变量,所以不需要__block。

因为<全局变量/静态全局变量>不涉及截获操作是直接使用的。所以不需要__block。

愤怒的牛牛的简书

愤怒的牛牛的新浪博客

愤怒的牛牛的GitHub

相关文章

  • iOS block详细知识点

    Block与外界变量 1、截获自动变量(局部变量)值 (1)默认情况 对于 block 外的变量引用,block ...

  • Block

    一、Block本质 二、 BlocK截获变量 三、__block 修饰变量 四、Block内存管理 五、Block...

  • 2022-04-13 block笔记

    什么是block 什么是block调用 block截获变量 __block修饰符用在什么场景,__block变量_...

  • Objective-C的Block实质与实现探究 part-6

    Block使用__block�变量,且该变量为对象的情况 转换为C++: 虽然与截获对象时和使用__block变量...

  • Block(匿名函数)

    一、语法格式 二、截获自动变量值和__block修饰符 block的自动变量截获只针对block中使用的自动变量。...

  • iOS面试之Block大全

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • iOS面试之Block模块

    Block Block内容如下: 关于Block 截获变量 __block修饰符 Block的内存管理 Block...

  • Block:截获变量与__block

    截获类型 1.局部变量 (基本数据类型/对象类型) 2.静态局部变量 3.全局变量 4.静态全局变量 对于基本数据...

  • Block

    Block介绍 截获变量 __block修饰符 Block的内存管理 Block的循环引用 一、Block介绍 1...

  • 2019 iOS面试题-----Block原理、Block变量截

    什么是Block? Block变量截获 Block的几种形式 一、什么是Block? Block是将函数及其执行上...

网友评论

      本文标题:Block:截获变量与__block

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