一、runloop 简介 RunLoop是通过内部维护的 事件循环(Event Loop) 来对 事件/消息 进行管理的一个对象。 没有消息处理时,休眠已避免资源占用,由用户...
一、runloop 简介 RunLoop是通过内部维护的 事件循环(Event Loop) 来对 事件/消息 进行管理的一个对象。 没有消息处理时,休眠已避免资源占用,由用户...
一、NSTimer 使用 1.1 使用问题 对于上面使用timerWithTimeInterval方式创建的timer需要主动调用NSRunLoop的addTimer触发计时...
一、自动释放池简介 对于autoreleasepool是怎么实现的呢?直接xcrun查看下对应的c++实现: 可以看到@autoreleasepool被转换成了__AtAut...
ARC是LLVM和Runtime配合的结果。 ARC中禁止手动调用retain/release/retainCount/dealloc ARC新加了weak、strong属性...
一、内存布局 1.1 内存分区 栈区:存储函数、方法、指针、局部变量、参数等(访问速度快,通过寄存器访问),当局部变量的作用域被执行完毕之后,这个局部变量就会被系统立即回收。...
一、block 简介 1.1 block 分类 NSGlobalBlock:位于全局区。在 Block内部不使用外部变量,或者只使用静态变量和全局变量。 NSMallocBl...
一、锁的分类 在分析其它锁之前,需要先区分清楚锁的区别,基本的锁包括了二类:互斥锁 和 自旋锁。 1.1 自旋锁 自旋锁:线程反复检查锁变量是否可用。由于线程在这一过程中保持...
一、性能分析 网上很多对比八大锁性能的文章,时间大部分比较早。苹果对某些锁内部进行了优化。这篇文章找中会以10万次数据做对比对主流锁性能进行分析。 1.1 调用情况模拟 OS...
一、栅栏函数 CPU的乱序执行能力让我们对多线程的安全保障的努力变得异常困难。因此要保证线程安全,阻止CPU换序是必需的。遗憾的是,现在并不存在可移植的阻止换序的方法。通常情...
上篇文章 GCD底层分析(一)[https://www.jianshu.com/p/1b2202ecb964] 分析了函数、队列的创建、以及同步和异步函数的调用流程。那么有以...
一、GCD 简介 1.1 GCD GCD(Grand Central Dispatch)本质是 将任务添加到队列,并且指定执行任务的函数。 GCD是纯C语言实现,提供了非常强...
一、线程和进程的关系和区别 1.1 线程和进程的定义 线程(Thread):也被称为 轻量级进程(Lightweight Proces, LWP),程序执行流的最小单元。一个...
一、自定义kvo 在上篇文章 kvo原理分析[https://www.jianshu.com/u/a569f5906a12] 中分析了系统kvo原来,在这个章节将实现一个简单...
一、kvo简介 Key-Value Observing Programming Guide[https://developer.apple.com/library/archi...
一、kvc基本用法 有如下定义: 1.1 一般setter以及成员变量访问 1.2 kvc间接访问 1.3 kvc集合类型 1.3.1 数组 对于如下集合类型数据: 修改方式...
一、OC方法的调用顺序 1.1 load与c++构造函数调用顺序 load是在dyld回调load_images中进行调用的,这个回调是在_objc_init的过程中进行注册...
一、类扩展分析 1.1 category 与 extension category和extension开发中经常遇到,他们的区别对比简单总结下: category(类别、分类...
xcrun也是调用的clang,编译出来的文件大小本质上与使不使用xcrun没有关系,与编译的命令有关。在我文章中的例子中xcrun限制了平台和架构所以就小很多了。检查下你clang和xcrun中使用的命令是否一致,如果限制条件一样那么大小一样就正常。
OC 对象、位域、isa一、对象的本质 1.1 clang 1.1.1clang 概述 Clang是一个C语言、C++、Objective-C语言的轻量级编译器。源代码发布于BSD协议下。 Clan...
根据上篇文章的分析,分类的加载有两条线路: methodizeClass -> attachToClass -> attachCategories load_images -...
上篇文章分析了 _objc_init与read_images[https://www.jianshu.com/p/a1b6e75d6ff8] 的逻辑,最后定位到了类的初始化是...