[OC Runtime编程指南_翻译]二、运行时版本和平台
Objective-C运行时在不同的平台上有不同的版本。
Legacy and Modern 版本
Objective-C运行时有两个版本-“modern”和“legacy”
。modern版本是在Objective-c2.0中引入的,它包含了许多新特性。legacy版本的运行时的编程接口在Objective-c1运行时参考中描述;现代版本的运行时的编程接口在_Objective-C _运行时参考中描述。
最值得注意的新特性是,现代运行时中的实例变量是“非脆弱的”:
- 在
legacy
runtime中,如果更改类中实例变量的布局
,则必须重新编译
继承自它。 - 在
modern
runtime中,如果更改类中实例变量的布局
,则不必重新编译
继承自它。
此外,现代运行时支持声明属性的实例变量合成(请参阅 _Objective-C _编程语言中的 声明属性)
平台
在OS X v10.5及更高版本
上的iPhone应用程序和64位程序
使用modern
版本的运行时间。
其他程序(OSX桌面上的32位程序)使用 legacy
版本的运行库。