OBJECTIVE-C.doc
上传人:sy****28 上传时间:2024-09-11 格式:DOC 页数:6 大小:73KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

OBJECTIVE-C.doc

OBJECTIVE-C.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Objective-C,通常写作ObjC和较少用的ObjectiveC或Obj-C,是扩充C的HYPERLINK"http://baike.baidu.com/view/125370.htm"\t"_blank"面向对象编程语言。它主要使用于MacOSX和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。Objective-C可以在gcc运作的系统写和编译,因为gcc含Objective-C的HYPERLINK"http://baike.baidu.com/view/487018.htm"\t"_blank"编译器。1980年代初布莱德·确斯(BradCox)在其公司Stepstone发明Objective-C。他对软件设计和编程里的真实可用度问题十分关心。Objective-C最主要的描述是他1986年出版的ObjectOrientedProgramming:AnEvolutionaryApproach.AddisonWesley.ISBN0-201-54834-8.优点及缺点Objective-C是非常“实际”的语言。它使用一个用C写成、很小的HYPERLINK"http://baike.baidu.com/view/1032404.htm"\t"_blank"运行库,只会令HYPERLINK"http://baike.baidu.com/view/330120.htm"\t"_blank"应用程序的大小增加很小,和大部分HYPERLINK"http://baike.baidu.com/view/174891.htm"\t"_blank"OO系统使用极大的HYPERLINK"http://baike.baidu.com/view/535939.htm"\t"_blank"VM执行时间会取代了整个系统的运作相反。ObjC写成的程序通常不会比其原始码大很多。而其函式库(通常没附在HYPERLINK"http://baike.baidu.com/view/37.htm"\t"_blank"软件发行本)亦和HYPERLINK"http://baike.baidu.com/view/76337.htm"\t"_blank"Smalltalk系统要使用极大的HYPERLINK"http://baike.baidu.com/view/1082.htm"\t"_blank"内存来开启一个HYPERLINK"http://baike.baidu.com/view/394265.htm"\t"_blank"窗口的情况相反。Objective-C的最初版本并不支持HYPERLINK"http://baike.baidu.com/view/159846.htm"\t"_blank"垃圾回收。在当时这是争论的焦点之一,很多人考虑到Smalltalk回收时有漫长的“HYPERLINK"http://baike.baidu.com/view/300354.htm"\t"_blank"死亡时间”,令整个系统失去功用。Objective-C为避免此问题才不拥有这个功能。虽然某些HYPERLINK"http://baike.baidu.com/view/1243841.htm"\t"_blank"第三方版本已加入这个功能(尤是GNUstep),HYPERLINK"http://baike.baidu.com/view/14874.htm"\t"_blank"Apple在其MacOSX10.3中仍未引入这个功能。不过令人欣慰的是在Apple发布的xCode4中已经支持自动释放啦,我不敢冒昧地说那是垃圾回收,因为两者机制不同,在xCode4中的自动释放,也就是ARC(AutomaticReferenceCounting)机制,是不需要用户手动去Release一个对象,而是在编译期间,编译器会自动帮你添加那些以前你经常写的[NSObjectrelease]。另一个问题是ObjC不包括命名空间机制(namespacemechanism)。取而代之的是程序设计师必须在其类别名称加上前缀,时常引致冲突。在2004年,在HYPERLINK"http://baike.baidu.com/view/387965.htm"\t"_blank"Cocoa编程环境中,所有MacOSX类别和函式均有“NS”作为前缀,例如NSObject或NSButton来清楚分别它们属于MacOSX核心;使用“NS”是由于这些类别的名称在NeXTSTEP开发时定下。虽然Objective-C是C的母集,但它也不视C的基本型别为第一级的对象。和