这可能是主观的,但是,如果我在Objective-C 2.0中编写一些代码并且我在Twitter上或在博客中写它,那么我应该将它称为Objective-C 2.0还是仅仅是Objective -C?
答案实际上并不那么微妙.Objective-C 2.0是一种用于识别几年前在WWDC上发布的Objective-C版本的名字.
然而,实际上有几种不同的东西可以被解释为Objective-C 2.0.
有API,ABI,架构和平台.
在所有这三个中,Objective-C 2.0可以引用可用的特定语法功能集,并且在所有平台和体系结构中几乎完全相同.一个区别是合成的ivars; 仅适用于64位Mac OS X和iPhone(但不适用于模拟器).
ABI - 或应用程序二进制接口 - 指的是稍微不同的东西; 在内存中布局的方式以及如何处理异常.32位Mac OS X,64位Mac OS X和iPhone之间的例外情况实际上是不同的.32位Mac OS X有非常昂贵的异常设置,但是便宜的抛出.64位Mac OS X具有非常便宜的异常设置和稍微昂贵的抛出(并且它们与C++兼容).iPhone有C++兼容的例外,但不是那么便宜的设置.
然后是建筑; 英特尔,PPC和arm CPU的变体之间存在细微差别.
最后,平台; 在平台之间还存在其他差异 - 主要是微妙的,通过上述描述量化的更大差异.
因此,Objective-C 2.0并没有多大意义.它只是Objective-C,语言的细微之处取决于目标平台,体系结构和操作系统版本.同样,Xcode工具链的发布可能会影响编译,因为某些错误可能会被修复,可能允许在其他情况下使用其他功能.
所以,不,真的......只需使用Objective-C.
除非你所写的内容是特定于2.0版本的语言,否则只使用Objective-C.
特别是关于堆栈溢出,更喜欢objective-c到objective-c-2.0,因为很少有人遵循objective-c-2.0标记