ios runtime基础知识
非盈利无广告开发者专用网址导航:www.dev666.com 前言 学习Objective-C的运行时Runtime系统是很有必要的。个人觉得,得之可得天下,失之则失天下。 Objective-C提供了编译运行时,只要有可能,它都可以动态地运作。这意味着不仅需要编译器,还需要运行时系统执行编译的代码。运行时系统充当Objective-C语言的操作系统,有了它才能运作。 运行时系统所提供功能是非常强大的,在实际开发中是经常使用到的。比如,苹果不允许我们给Category追加扩展属性,是因为它不会自动生成成员变量,那么我们通过运行时就可以很好的解决这个问题。另外,常见的模型转字典或者字典转模型,对象归档等。后续我们再来学习如何应用,本节只是讲讲理论。 与Runtime交互 Objective-C程序有有三种与runtime系统交互的级别: 通过Objective-C源代码 通过Foundation库中定义的NSObject提供的方法 通过直接调用runtime方法 通过Objective-C源代码 在大多数的部分,运行时系统会自动运行并在后台运行。我们使用它只是写源代码并编译源代码。当编译包含Objective-C类和方法的代码时,编译器会创建实现了语言动态特性的数据结构和函数调用。该数据结构捕获在类、扩展和协议中所定义的信息。 最重要的runtime函数是发消息函数,在编译时