GNUstepObjective-CRuntime被设计为GCCRuntime 的替代品。它支持三种ABI:旧的GCCABI,它提供对Objective-C1.0特性的支持。这可以通过Clang中的-fobjc-runtime=gcc标志或用GCC编译来选择。最初的GNUstep non-fragile ABI,旨在与GCCABI兼容,但提供对现代Objective-C功能的支持。这可以通过Clang中的-fobjc-runtime=gnustep-1.9标志来选择。现代(v2)ABI,提供了更丰富的反射元数据、更小的二进制文件和更少的内存使用。这是在Clang7.0或更高版本中用-fobjc-runtime=gnustep-2.0标志选择的。通过在CMake配置中将OLDABI_COMPAT标志设置为OFF,可以在不支持旧ABI的情况下构建运行时。这将产生一个较小的二进制文件,它不会链接到使用旧ABI的代码。所有ABI都支持GCC运行时之外的以下功能:现代Objective-C运行时API,最初是在OSX10.5中引入的。Blocks合成的属性访问器对@synchronized()的有效支持依赖于类型的调度,消除了不匹配的选择器造成的堆栈损坏支持MacOSX10.6引入的相关参考API。支持MacOSX10.7引入的自动引用计数API
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论