美文网首页
BLOCK简单分析

BLOCK简单分析

作者: ios小喽喽 | 来源:发表于2022-09-13 14:55 被阅读0次

1、block的本质:是一个结构体,里面有一个isa指针;

图(1) 图(2)

2、底层结构:__block_impl、__main_block_desc_0、__Block_byref_a_0 *a;

图(3)

3、Block的分类:NSGlobalBlock、NSMallocBlock、NSStackBlock

    a、NSGlobalBlock:全局、在数据区;没有访问 auto变量

图(4)

    b、NSMallocBlock:存储在堆上

图(5)

    c、NSMallocBlock:存储在栈上,block捕获了自动变量,block没有执行过copy操作

图(6)

4、block的定义:

图(7) 图(8)

5、防止block循环引用:

        a、__weak typeof(self) weakSelf = self;__strong__typeof(weakSelf)strongSelf = weakSelf;

图(9)

    b、__block ViewController *vc = self;

图(10)

    c、直接在blcok里面传入需要释放的对象

图(11)

相关文章

  • BLOCK简单分析

    1、block的本质:是一个结构体,里面有一个isa指针; 2、底层结构:__block_impl、__main_...

  • Block浅析

    参考了网上的一些Block的文档,加上自己对Block的使用、理解,对Block做一个简单的分析。 Block是C...

  • 基础的block实现原理

    理解定义 BLock官方的定义 分析实现原理 从最简单的block开始 将下面的 simple_test.m 代码...

  • Block内存管理实例分析

    Block内存管理实例分析 Block内存管理实例分析

  • 探究block本质

    记录一下,分六个方面来探究block,一步步分析。 一.block底层结构写一个最简单的block: c++重写:...

  • Block探索

    Block内存关系Block经典问题循环引用&解决Block底层分析Block底层HooK 程序占用内存分类 栈区...

  • Block底层分析

    Block内存关系Block经典问题循环引用&解决Block底层分析Block底层HooK 1. 研究工具:cla...

  • block分析(下)

    block通过clang分析 带着下面的疑问,我们去探索block原理 探索block底层源码 block在底层是...

  • Block底层hook

    Block内存关系Block经典问题循环引用&解决Block底层分析Block底层HooK 前言 如何反编译出微信...

  • Block经典问题循环引用&解决

    Block内存关系Block经典问题循环引用&解决Block底层分析Block底层HooK 1.循环引用怎么产生的...

网友评论

      本文标题:BLOCK简单分析

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