美文网首页
关于Block的理解

关于Block的理解

作者: 碧海云天V | 来源:发表于2020-04-08 18:14 被阅读0次

Block是将函数及其执行上下文封装起来的对象。
在开发过程中我们经常会用到Block处理一些事物,下面我们就对Block做一下简单的梳理。

先上Demo


Block捕获变量

  • 局部变量
  • 静态局部变量
  • 全局变量
  • 静态全局变量
->局部变量

(1)基本数据类型局部变量
基本数据类型:对于基本数据类型的局部变量截获其值(值传递)


image.png

(2)对象类型局部变量
对象类型:对于对象类型的局部变量连同所有权修饰符一起截获(指针传递)


image.png
->静态局部变量

静态局部变量:对于静态局部变量是以指针形式截获的(指针传递)


image.png
->全局变量

全局变量:不截获(直接访问)


image.png
->全局静态变量

全局静态变量:不截获(直接访问)


image.png

__block修饰符

一般情况下,对被截获变量进行赋值操作需要添加__block修饰符(注意区分赋值和使用)
需要__block修饰符:对象类型、基本数据类型
不需要__block修饰符:静态局部变量、全局变量、静态全局变量

__block修饰的变量变成了对象 image.png

Block的内存管理

直接上图吧,比较直观。 IMG_839EB5ECE982-1.jpeg

结语

关于block常用的知识点在这里已经简单的总结了,如有不对之处,烦请指正vast0608@163.com谢谢!

相关文章

  • 关于block的理解

    FBI WARNING:纯属个人见解,有可能是错误的理解。O(∩_∩)Oblock作用1.可以传递数据,取代代理模...

  • 关于block的理解

    block的类型详解 关于block的知识,在网络上的资料那是相当的多。不过这里还是想来谈谈自己对block的理解...

  • 关于Block的理解

    Block是将函数及其执行上下文封装起来的对象。在开发过程中我们经常会用到Block处理一些事物,下面我们就对Bl...

  • 九、Block之(一)Block内部结构及调用本质

    一、Block内部数据结构 1.调用分析 2.关于block调用中 block->FunPrt()的理解 bloc...

  • 关于 __ block 再理解

    关于 __ block 再理解 我们都知道:block不准修改外部变量的值,这里所说的外部变量的值,指的是栈中指针...

  • 关于IOS的Block的理解

    IOS中的Block大致分为三种 第一种 堆block 我们知道 程序在内存中 堆是程序员分配的和使用的栈是系统使...

  • iOS 关于block前缀的理解

    关于block:修饰符 用copy(要从堆区 拷贝到栈区) 前缀修饰符: __block:默认情况下,bloc...

  • Block原理探究(上篇)-Block本质及存储域问题

    主要内容:1.理解Block的本质2.理解Block的存储域分类3.理解Block的Copy原理 一、探究Bloc...

  • Block

    将我认为的比较易懂的关于block的文章整理到一起: 文章链接: 你真的理解__block修饰符的原理么? __b...

  • iOS面试之Block大全

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

网友评论

      本文标题:关于Block的理解

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