- 博客(4)
- 收藏
- 关注
原创 Objective-C runtime机制(1)——基本数据结构:objc_object & objc_class
前言从本篇文章开始,就进入runtime的正篇。什么是runtime?OC是一门动态语言,与C++这种静态语言不同,静态语言的各种数据结构在编译期已经决定了,不能够被修改。而动态语言却可以使我们在程序运行期,动态的修改一个类的结构,如修改方法实现,绑定实例变量等。 OC作为动态语言,它总会想办法将静态语言在编译期决定的事情,推迟到运行期来做。所以,仅有编译器是不够的,它需要...
2018-05-30 10:06:22 7202 3
原创 Objective-C runtime机制(前传2)——Mach-O格式和runtime
在前传1中,我们分析了解了XNU内核所支持的二进制文件格式Mach-O。同时还留了一个小尾巴,就是Mach-O文件中和Objective-C以及runtime相关的Segment section。今天,就来了解一下它们。OC之源起我们知道,程序的入口点在iOS中被称之为main函数:#import <UIKit/UIKit.h>#import &am
2018-05-25 16:20:55 2494
原创 Objective-C runtime机制(前传)——Mach-O格式
Mach-OMach-O是Mach Object文件格式的缩写。它是用于可执行文件,动态库,目标代码的文件格式。作为a.out格式的替代,Mach-O格式提供了更强的扩展性,以及更快的符号表信息访问速度。Mach-O格式为大部分基于Mach内核的操作系统所使用的,包括NeXTSTEP, Mac OS X和iOS,它们都以Mach-O格式作为其可执行文件,动态库,目标代码的文件格式。具体...
2018-05-21 22:28:50 3367 2
原创 iOS RunLoop完全指南
提起RunLoop,相信每个iOS开发都或多或少的听过,面试时也会经常作为压箱底的问题来问。之前写过RunLoop相关的内容,但是那时写的太浅,基本都是照着苹果文档的翻译。今天,就重新深入了解一下RunLoop。什么是RunLoop概念什么是RunLoop,顾名思义,RunLoop就是在‘跑圈’,其代码本质是一个do while循环。 RunLoop位于苹果的Core Found...
2018-05-16 23:02:21 12142 3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人