一直用oc这门语言编程,也一直在慢慢深入的了解这门语言。这就有一个始终绕不开的概念runtime。我想对于很多iOS开发者来说或多或少都会了解一些runtime相关的知识,下面让我们系统的看一下runtime到底是何方神圣,他到底强大在什么地方。不多哔哔上干货~~~~
再多哔哔几句,runtime在我们开发之中类似于核武器于一个国家一样,平时只能拿来吓唬吓唬人,没什么卵用。但是一旦有他的用武之地,他就威力无穷。这种在开发中不是很常用的东西你很多时候貌似真的懂了,但是又好像没有摸到门道,所以一下的内容有可能冗长而晦涩。
Introduction
首先上官方文档的一段话。
objective - c语言尽可能将许多决定从编译和链接推迟到运行时。只要有可能,它会动态的执行。这意味着他需要的不仅仅是一个编译器,也需要一个运行时系统来执行编译后的代码。运行时系统作为一种objective - c语言的操作系统;是他使这门语言发挥出了无穷色彩。本文着眼于NSObject类和objective - c程序如何与运行时系统交互。特别是,它检查在运行时动态加载新类的范例,并将消息转发给其他对象。它还提供了关于在您的程序正在运行时如何找到对象的信息,。你应该阅读本文档了解objective - c运行时系统是如何工作的,以及如何利用它。一般来说编写cocoa应用程序,你应该没有理由需要知道和理解这种材料。所以欲想成神必须逆天而行。