嗯,因为现在的Mac OS X系列的一些组件其实是由以前乔布斯短暂离开苹果时开得NeXTStep里的。NeXTStep就是全面采用ObjC的面向对象开发,基于BSD的Mach Kernel核心也被后者继承了,这个系统直接包含一个面向对象层,当时算是十分先进的,要知道WinAPI也还是纯C的。
以前Mac OS X里的很多系统组件比如Finder虽然界面模仿了NeXTStep,但是还是沿用旧的基于C的Carbon架构,在10.6之后就彻底用ObjC重写了。
ObjC的优点是能和C语言直接混合编译,而且因为Cocoa软件架构就是ObjC的,用它能保证最好的相容性。
因为它是C++的前辈,所以ObjC缺少多重继承支持,不过这个东西的存在本身就遭人诟病,Java也去掉了。作为应用程序开发完全足够,而且ObjC也被苹果进行了大量改进,配合里面类成员的+、-语法能实现智能垃圾回收等特性,这个C++里做不到。