栈地址是0x7ffeefbff56c这样的,堆地址是0x100706b90这样的,可以看一下iOS中内存区域划分,https://www.jianshu.com/p/62478abda580
block外声明了局部变量,block里没有用上,对应文中1.2.1部分内容
一、讲一下对Runloop的理解? Runloop就是一个运行循环,它保证了在没有任务的时候线程不退出,有任务的时候即使响应。Runloop跟线程,事件响应,手势识别,页面更...
一、+ (void)load 对于每一个Class和Category来说,必定会调用此方法,而且仅调用一次。当包含Class和Category的程序库载入系统时,就会执行此方...
组件化 本文主要介绍组件化常用三种通讯方式. 常⽤的三种组件化通讯方案 组件化通信方案组件化最重要的是兄弟模块的通讯常⽤的三种方案URL SchemeTarget - Act...
作者辛苦了
iOS组件化及架构设计关于组件化 网上组件化的文章很多。很多文章一提到组件化,就会说解耦,一说到解耦就会说路由或者runtime。好像组件化 == 解耦 == 路由/Runtime,然而这是一个非...
对技术的极致追求
[转]iOS应用架构谈 组件化方案前言: 本文转自前同事casa的博文,这篇文章是基于runtime实现的iOS组件化方案,其实iOS组件化方案基本是两派,一派是蘑菇街、一号店这些用的通过depplink自定...
不知道什么时候开始,写代码只要有block就在block里面写如下代码: 首先解释一下,为什么外面使用weakSelf? 如果self持有block,block里也持有sel...
在block中调用self就回造成循环引用?当然不是。要创造出一个循环引用的block需要两个条件:1、在block中引用了self2、对block做了copy操作 例如: ...
“我们可以看到,当存储在栈上的__block变量被栈BLock使用时,__block变量被拷贝到了堆上(被堆BLock强引用)。”
哪里copy了?
[iOS]Block系列探究四 - __block变量存储域上一篇文章研究了一下Block的存储域,这一篇文章我们来研究下__block变量的存储域。 一、__block变量不能声明为全局变量 当我们将__block声明为全局变量的时...
"如果没有捕获变量或者捕获静态/全局变量(变量存储在数据区)则为_NSConcreteGlobalBlock",这个没有捕获变量应该怎么理解?
[iOS]Block系列探究三 - Block存储域我们知道应用程序的内存分配有四个区: 程序区域(.text区)- 存放函数体的二进制代码。 数据区域(.data区)- 主要包括静态全局区(全局变量和静态变量的存储是放在一块...
上一篇文章中我们得知了OC的block其实就是C的函数指针,这一篇文章我们来研究下block与局部变量的各种化学反应。 一、截获变量 我们主要截获三种变量,分别是全局变量、静...
写的非常好,感谢
iOS之Block深度学习Block基础回顾 1.什么是Block? 带有局部变量的匿名函数(名字不重要,知道怎么用就行),差不多就与C语言中的函数指针类似,可以当做参数传来传去,而且可以没有名字。 ...