Objective-C新的命名规则应用。Objective-C不包括命名空间机制,处理这个问题的方法是程序设计师必须为其类别名称加上前缀。由于前缀往往较短(相比命名空间),这时常引发冲突。2007年开始,在Cocoa编程环境中,所有Mac OS X类别和函式均有“NS”前缀(例如NSObject或NSButton)以清楚地标识它们属于Mac OS X核心。使用“NS”是由于这些类别的名称是在NeXTSTEP开发时定下的。
Objective-C独有个性。虽然Objective-C是C的严格超集,但它没有将C的基本类型视为第一级的对象,源)自(优尔+文=论]文]网[www.youerw.com。和C++不同,Objective-C不支持运算子多载(不支持ad-hoc多型)。与C++不同(但和Java相同),Objective-C只允许对象继承一个类别(不设多重继承)。Categories和Protocols可以提供很多多重继承的好处,而且没有什么缺点,例如额外执行时间过重和二进制不兼容。
由于Objective-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至系统调用也是如此),很多常见的编译时性能优化方法都不能应用于Objective-C(例如内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Objective-C性能劣于类似的对象抽象语言(如C++)。不过Objective-C拥护者认为,既然Objective-C运行时消耗较大,Objective-C本来就不应该应用于C++或Java常见的底层抽象。
计算机语言性能与分析英文文献和中文翻译(2):http://www.youerw.com/fanyi/lunwen_52244.html