月度归档:2017年01月

揭开Runtime 的神秘面纱

概述

动态 vs 静态语言

Objective-C 是一门动态语言,刚接触Objective-C 的时候,你一定会为它使用方括号这种怪异的“函数调用”方式而感到惊讶。准确的说,Objective-C 中的如下语句

并不等同于C语言中的函数调用,而是向receiver 对象发送message 消息。C语言中的函数调用是在编译期间确定的,而Objective-C 是一门面向 Runtime 的语言,也就是说,它把消息发送的时机从编译&链接时延后到了运行时。这正是Objective-C 众多的黑魔法的源头所在。 继续阅读揭开Runtime 的神秘面纱