Runtime 发表于 2018-10-13 | 分类于 iOS进阶 OC的面向对象、消息派发、动态绑定、内存管理等机制,都是与Runtime运行时环境息息相关的。OC是一个面向对象的语言,面向对象是指把一定的算法函数和数据变量以某种内在联系绑定在一起,形成最基本的结构单元,这些结构单元即是抽象的对象,对其进行赋值等操作,则就会成为实体对象,即实例。通过使用继承、派生等手法可以让对象与对象之间产生各种微妙的联系。 阅读全文 »
RunLoop 发表于 2018-09-01 | 分类于 iOS进阶 RunLoop是内部维护事件循环的一个对象。而事件循环可以不断地对消息或事件进行管理:当没有消息时,会将进程从用户态切到内核态,由此对当前线程进行休眠,以避免资源占用;当有消息需要处理时,会从内核态切到用户态,以便及时唤醒线程。 阅读全文 »
iOS内容管理 发表于 2018-06-13 | 分类于 iOS进阶 iOS内存管理使用的是ARC自动内存管理规则,通过引用计数来决定是否释放对象。而引用计数的存储则是用过不同的解决方案,有些对象如果支持使用TaggedPointer,则会直接将其指针值作为引用计数值返回;如果是在64位架构下,那么一些对象会使用isa指针的一部分空间来存储它的引用计数,否则runtime会使用一张散列表来管理引用计数。 阅读全文 »