现在在很多平台上有很多不同版本。
遗留和现有的版本
OC运行时有两个版本——“遗留”和“现有”。新版本是通过OC2.0介绍并包含很多新方法。老版本的运行时编程接口是在《Objective-C 1 Runtime Reference》中描述;新版本运行时编程接口的描述是在《Objective-C Runtime Reference》中
在新版本的运行时中,最值得注意的新特征是实例变量是“非脆弱的”(non-fragile)。
- 在老版本中,如果改变实例变量的布局,则必须重新编译它所继承的类。
- 在新版本中,如果改变实例变量的布局,则不须要重新编译它所继承的类。
此外,新版本的运行时支持对实例变量已声明的属性进行合成(查看《The Objective-C Programming Language》中的属性声明)
平台
苹果手机和OS X 10.5以上版本的64位程序使用新版本的运行时。
其他程序(OS X平台上的32位程序)使用老版本的运行时。