我们在分析自动释放池底层源码前,我们先来创建一个新工程,查看main函数中系统创建的自动释放池最终转换为底层c++...[作者空间]
我们都知道iOS的内存管理分为手动内存管理(MRC)和自动内存管理(ARC),但是不管是手动内存管理还是自动内存管...[作者空间]
我们在平时的开发过程中,经常会使用到__weak关键字来解决循环引用的问题,被__weak修饰的指针就变成了弱指针...[作者空间]
我们在平时的项目开发过程中,经常会使用到NSTimer来创建定时器,但是在使用过程中有时我们又会遇到以下几个问题:...[作者空间]
我们在平时的开发过程中可能会遇到多个线程并发同时访问同一资源的情况,例如数据库的存取操作,或者是文件的读写操作,像...[作者空间]
我们平时在项目开发过程中经常会用到多线程相关的技术,经常会使用多线程来进行网络请求和数据传输等操作,OC中创建多线...[作者空间]
我们在平时开发过程中使用到多线程的场景大部分都是创建一个线程来处理任务,当这个任务处理完后线程也就自动销毁。如果有...[作者空间]
我们在平时开发过程中涉及到runloop相关的应用场景大致有如下几种: NSTimer创建的定时器在滑动过程中失效...[作者空间]
我们在探究Runloop的本质前首先要知道什么是Runloop? runloop定义:iOS程序中的运行循环机制,...[作者空间]
我们新建一个工程,创建一个Person类,示例代码如下: Person类 main函数 我们从main函数中的四个...[作者空间]
在平时的开发过程中,我们经常会执行[super xxx]来调用父类的方法,但是我们很少会去关心super关键字的底...[作者空间]
我们都知道OC中的方法调用,最终底层都是调用runtime的objc_msgSend()API来发送消息,也就是O...[作者空间]
OC中Runtime的基本概念: Runtime是OC中的运行时机制,之所以说OC是一门动态性语言,这也正是因为有...[作者空间]
block的循环引用 我们新建一个工程,然后新建Person类,在main函数中编写如下测试代码: Person类...[作者空间]
__block本质 我们知道在block内部不能够直接修改外部的变量的值,但是我们给变量添加__block修饰后,...[作者空间]
block捕获对象类型的变量 前面讲解的block变量捕获,我们讲解了block捕获基本数据类型的情况,下面我们再...[作者空间]
block的copy操作 在ARC环境下,编译器会根据情况自动地将栈内存上的block拷贝到堆内存上,以下几种情况...[作者空间]
block的类型 我们创建一个新工程,然后在main函数中创建几个block,在ARC环境下运行,代码如下: 从上...[作者空间]
block变量捕获 在讲解block变量的捕获之前,我们先来看看OC中的变量大致分为哪几类: 局部变量自动变量静态...[作者空间]
06-block的本质 在讲解block的底层原理前,我们先抛出如下block相关的问题: block的本质,底层...[作者空间]