Runtime剖析05 --- 再议iOS内存管理

我们都知道,iOS中进行内存管理的管理模型是引用计数,但是这属于上层应用的范畴,在系统底层,iOS会根据不同的数据结构或者不同的数据类型,进行系统内存的分区,在不同的分区中,管理着自己的内存,另外,iOS的内存管理并不直接管理硬件内存,而是管理着...

Runtime剖析04 --- 深入理解Category

在Objective-C中,可以通过Category添加属性、方法、协议,在Runtime中Class和Category都是通过结构体实现的。和Category相似的还有Extension,二者的区别在于,Extension在编译期就直接和原类编...

Runtime剖析03 --- “黑魔法” Method Swizzling

方法替换,又称为Method Swizzling,是Objective-C语言中比较流行的“黑魔法”。动态替换方法实现,大多数情况下使用在一些检测类的业务逻辑中,同时,方法替换也带给开发者更多可能的新的开发方式。在简单剖析**Method Swi...

Runtime剖析02 --- 消息与消息发送机制

在Objective-C中,消息发送指Runtime会根据SEL查找对应的IMP,当查找到,则调用函数指针进行方法调用,若查找不到,则进入动态消息解析和消息转发流程,如果动态解析和消息转发失败,则程序会崩溃。

Runtime剖析01 --- 基本数据结构:objc_object & objc_class

众所周知,Objective-C语言是一门动态性很强的语言,与C、C++等语言有着很大的不同。Objective-C语言的动态性基本上都是由Runtime机制进行支撑和实现的,Runtime的实现,融合了C、C++,以及汇编语言。

iOS内存管理小结

内存管理是指软件运行时对计算机内存资源的分配和使用的技术。其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源。在早起的iOS开发中多采用MRC(手动引用计数)来进行内存管理,iOS 5引入了ARC(自动引用计数),90%以上...

\#20\ 堆排序(Heap Sort)

堆排序[Heap Sort]是另一种基于比较的排序算法,其利用堆对数组进行升序排序。关于堆数据结构,可以查看\#15\ 堆数据结构(The Heap Data Structure)中的介绍。

\#19\ 基数排序(Radix Sort)

基数排序[Radix Sort]是一种在线性时间内对整数进行排序的非比较算法。