15158846557 在线咨询 在线咨询
15158846557 在线咨询
所在位置: 首页 > 营销资讯 > 信息时代 > Objective-C优点及缺点

Objective-C优点及缺点

时间:2022-02-08 13:30:01 | 来源:信息时代

时间:2022-02-08 13:30:01 来源:信息时代

Objective-C是非常'实际'的语言。它使用一个用C写成、很小的运行库,只会令应用程序的大小增加很小,和大部分OO系统使用极大的VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在软件发行本)亦和Smalltalk系统要使用极大的内存来开启一个窗口的情况相反

Objective-C的最初版本并不支持垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的'死亡时间',令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些第三方版本已加入这个功能(尤是GNUstep),Apple在其MacOSX10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的xCode4中已经支持自动释放啦,我不敢冒昧地说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(AutomaticReferenceCounting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的。

另一个问题是ObjC不包括命名空间机制(namespacemechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在Cocoa编程环境中,所有MacOSX类别和函式均有'NS'作为前缀,例如NSObject或NSButton来清楚分别它们属于MacOSX核心;使用'NS'是由于这些类别的名称在NeXTSTEP开发时定下。

虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。

和C 不同,Objective-C不支援运算子多载(它不支持ad-hoc多型)。亦与C 不同,但和Java相同,Objective-C只容许对象继承一个类别(不设多重继承)。Categories和protocols不但可以提供很多多重继承的好处,而且没有很多缺点,例如额外执行时间过重和二进制不兼容。

由于Obj-C使用动态运行时类型,而且所有的方法都是函数调用(有时甚至连系统调用(syscalls)也如此),很多常见的编译时性能优化方法都不能应用于Obj-C(例如:内联函数、常数传播、交互式优化、纯量取代与聚集等)。这使得Obj-C性能劣于类似的对象抽象语言(如C )。不过Obj-C拥护者认为既然Obj-C运行时消耗较大,Obj-C本来就不应应用于C 或Java常见的底层抽象。

关键词:缺点,优点

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭