Cocoa入门--使用Objective-C(第二版)
基本信息
- 作者: (美)James Duncan Davidson Apple Computer,Inc. [作译者介绍]
- 译者: 彭舰 张磊 李征 琚生根
- 丛书名: 中国电力出版社O'Reilly系列
- 出版社:中国电力出版社
- ISBN:9787508365619
- 上架时间:2008-2-29
- 出版日期:2008 年2月
- 开本:16开
- 页码:353
- 版次:2-1
- 所属分类:
计算机 > 软件与程序设计 > 综合 > 高级程序语言设计
计算机 > 软件工程及软件方法学 > 面向对象
计算机 > 软件与程序设计 > C/Turbo C > 综合
编辑推荐
助您轻松体验Cocoa开发,不仅是阅读,还有动手实践。每章中都提供了不同的示例程序供您构建,通过循序渐进的指导来教给您Cocoa编程的基础。
推荐阅读
内容简介回到顶部↑
本书助您轻松体验cocoa开发,不仅是阅读,还有动手实践。介绍完xcode和interface builder之后,您将很快接触到objective-c的面向对象编程概念,它是创建mac os x应用程序的首选语言。
每章中都提供了不同的示例程序供您构建,通过循序渐进的指导来教给您cocoa编程的基础。每章中学到的技巧都作为基础铺垫后面章节中介绍的更高级的技巧和概念。您将学到:
·高效地用好苹果的开发工具套装,包括xcode和interface builder
·构建单一的和多窗口的基于文档架构的应用程序
·用cocoa的文本处理能力操作文本数据
·用cocoa来绘图
·本地化您的应用程序以支持多语言
·完善您的应用程序,添加用于dock上的图标、提供帮助和打包发布。
在每章的结尾您将看到一些练习,挑战您改进刚创建的应用程序,或为早先的示例增添新功能。
尽管附录中提供了解决方案,但仍旧鼓励您通过自己尝试来学习。
本书最初由苹果公司的内部人员编写,并由james duncan davidson修订成新版,在译为中文版时又将内容更新至基于mac os x 10.5 leopard版本。
本书包含了cocoa框架的最新更新,还包括了便利的api速查参考卡,以及在附录中给出很多重要资源,对任何cocoa开发人员无论初学者还是高手都很重要。
每章中都提供了不同的示例程序供您构建,通过循序渐进的指导来教给您cocoa编程的基础。每章中学到的技巧都作为基础铺垫后面章节中介绍的更高级的技巧和概念。您将学到:
·高效地用好苹果的开发工具套装,包括xcode和interface builder
·构建单一的和多窗口的基于文档架构的应用程序
·用cocoa的文本处理能力操作文本数据
·用cocoa来绘图
·本地化您的应用程序以支持多语言
·完善您的应用程序,添加用于dock上的图标、提供帮助和打包发布。
在每章的结尾您将看到一些练习,挑战您改进刚创建的应用程序,或为早先的示例增添新功能。
尽管附录中提供了解决方案,但仍旧鼓励您通过自己尝试来学习。
本书最初由苹果公司的内部人员编写,并由james duncan davidson修订成新版,在译为中文版时又将内容更新至基于mac os x 10.5 leopard版本。
本书包含了cocoa框架的最新更新,还包括了便利的api速查参考卡,以及在附录中给出很多重要资源,对任何cocoa开发人员无论初学者还是高手都很重要。
作译者回到顶部↑
本书提供作译者介绍
James Duncan Davidson:Duncan是自由撰稿人、演讲者以及软件顾问,他主要专注在Mac OS X、Java和XML技术。他频繁地在全世界各种会议上演讲,话题范围从开源到高效Java开发。他是Apache Tomcat和Apache Ant的原创作者,并参与促成了Sun Microsystems(太阳微系统)公司向Apache Software Foundation(阿帕奇软件基金会)的捐赠。在Sun工作期间,他创作了两个版本的Java Servlet API规范,以及Java API for XMLProcessing(Java版XML API)规范。他现在居住在美国加州的旧金山,可以通过网站http://duncand.. << 查看详细
目录回到顶部↑
前言
第一部分 cocoa概述和基础
第1章 cocoa介绍
mac os x编程环境
cocoa定义
cocoa框架
程序语言
foundation框架
第2章 cocoa开发工具
安装开发工具
interface builder
其他工具
命令行工具
练习
第3章 基于objective-c语言的面向对象编程
认识对象
创建和使用对象
objective-c定义的类型
创建新类
方法覆盖
第一部分 cocoa概述和基础
第1章 cocoa介绍
mac os x编程环境
cocoa定义
cocoa框架
程序语言
foundation框架
第2章 cocoa开发工具
安装开发工具
interface builder
其他工具
命令行工具
练习
第3章 基于objective-c语言的面向对象编程
认识对象
创建和使用对象
objective-c定义的类型
创建新类
方法覆盖
译者序回到顶部↑
不管您是了解个人电脑发展史还是紧跟着当今时尚潮流,苹果公司的产品都应该具有与众不同的地位。不只是它的产品开创了个人电脑的时代,苹果公司也作为重要角色不断书写着个人电脑的发展历史。历经几个年风雨起伏它又凭借着自己先进的技术、令人称赞的创新精神、优秀的产品和独到的市场运作,重新回到主流市场之中。作为现存不多的老牌个人电脑公司之一,苹果公司如今几乎成为时尚创新科技的代名词,市值超过思科、IBM、惠普、戴尔等行业巨头。.
随着近几年来苹果电脑在国内市场的逐渐发展,现在越来越多的开发人员开始意识到应该在更具活力和创新精神的平台上开发优异的产品。《Cocoa入门—使用Objective-C》中文版的诞生也正是希望填补目前国内市场这方面的空白,通过它引领那些想在苹果平台有所作为的开发人员接触到这个平台独特而又强大的开发技术。秉承了O'Reilly一贯的优秀品质和同样独特的出版风格,本书的英文版在海外市场大受好评。
早在几年前苹果公司就开始和中国高校合作培养苹果平台未来的开发人员。四川大学作为第一批建立苹果开发技术实验室的高校还创建了苹果俱乐部,开设苹果开发课程,与其他合作高校一起培养出了一批苹果平台的爱好者。而与此对应的是,关于苹果电脑技术特别是开发技术的中文书籍相当匮乏。这抬高了苹果开发的入门难度,也把一批苹果平台的爱好者拦在开发者群体之外。译者很荣幸能将此书翻译介绍给国内读者,为苹果平台上开发技术在国内的普及贡献一份力量。..
本书原版由James Duncan Davidson撰写,对于准备在Mac OS X平台上开发应用程序的人来说这是一部难得的好书。它条理明晰、层层深入,先以概述和基本介绍开始,通过各个主题逐渐深入,使读者对如何在Mac OS X平台上开发应用程序得到具体的认识。作者的用语虽然平实易懂却不乏精彩之处,尤其是各种形象的举例。最为称道的是每章都会有一个示例程序,手把手地指导您利用所学的知识创建具有相应功能的Cocoa应用程序。
由于Mac OS X已发布最新的版本Mac OS 10.5 Leopard,而本书的原版是基于Mac OS 10.2编著。为此,译者做了相应修改,采用了Xcode而非早先的ProjectBuilder作为开发工具,并将所有图片在新的环境下进行了重新的截取和更换,所有的示例代码也在Leopard下进行了编译调试以验证其有效性,并做了必要修改。
所以说本书凝聚了多人的智慧和努力。彭舰翻译了本书的序言和第1—10章,张磊翻译了本书第11—15章,李征、琚生根翻译了本书的剩余章节,王俊和黄忍冬也参与了很多翻译和技术工作。彭舰负责全书的统稿工作。在书籍的翻译过程中有很多人参与其中并给出了诸多建议,在此特别表示感谢,他们是谢刚、简晓渝、谢川、廖朝辉、钟虹、伍敏、郭翔、张达平、熊奇、吴佳欣、刘唐、王红伟、李亭升和四川大学苹果俱乐部的同学们。苹果公司的端木恒先生完美地完成了本书的终稿技术审校工作,将本书的质量提升到新的高度。
感谢苹果公司夏鹏先生对本书的出版给予的极大帮助。感谢四川大学计算机学院院长周激流教授、唐宁九教授、谢汶副教授、未敏教授、邰明松老师、卢莉老师和中国电力出版社,感谢他们对本书提供了很多有益的建议和热情的支持。...
译者
2007年10月
随着近几年来苹果电脑在国内市场的逐渐发展,现在越来越多的开发人员开始意识到应该在更具活力和创新精神的平台上开发优异的产品。《Cocoa入门—使用Objective-C》中文版的诞生也正是希望填补目前国内市场这方面的空白,通过它引领那些想在苹果平台有所作为的开发人员接触到这个平台独特而又强大的开发技术。秉承了O'Reilly一贯的优秀品质和同样独特的出版风格,本书的英文版在海外市场大受好评。
早在几年前苹果公司就开始和中国高校合作培养苹果平台未来的开发人员。四川大学作为第一批建立苹果开发技术实验室的高校还创建了苹果俱乐部,开设苹果开发课程,与其他合作高校一起培养出了一批苹果平台的爱好者。而与此对应的是,关于苹果电脑技术特别是开发技术的中文书籍相当匮乏。这抬高了苹果开发的入门难度,也把一批苹果平台的爱好者拦在开发者群体之外。译者很荣幸能将此书翻译介绍给国内读者,为苹果平台上开发技术在国内的普及贡献一份力量。..
本书原版由James Duncan Davidson撰写,对于准备在Mac OS X平台上开发应用程序的人来说这是一部难得的好书。它条理明晰、层层深入,先以概述和基本介绍开始,通过各个主题逐渐深入,使读者对如何在Mac OS X平台上开发应用程序得到具体的认识。作者的用语虽然平实易懂却不乏精彩之处,尤其是各种形象的举例。最为称道的是每章都会有一个示例程序,手把手地指导您利用所学的知识创建具有相应功能的Cocoa应用程序。
由于Mac OS X已发布最新的版本Mac OS 10.5 Leopard,而本书的原版是基于Mac OS 10.2编著。为此,译者做了相应修改,采用了Xcode而非早先的ProjectBuilder作为开发工具,并将所有图片在新的环境下进行了重新的截取和更换,所有的示例代码也在Leopard下进行了编译调试以验证其有效性,并做了必要修改。
所以说本书凝聚了多人的智慧和努力。彭舰翻译了本书的序言和第1—10章,张磊翻译了本书第11—15章,李征、琚生根翻译了本书的剩余章节,王俊和黄忍冬也参与了很多翻译和技术工作。彭舰负责全书的统稿工作。在书籍的翻译过程中有很多人参与其中并给出了诸多建议,在此特别表示感谢,他们是谢刚、简晓渝、谢川、廖朝辉、钟虹、伍敏、郭翔、张达平、熊奇、吴佳欣、刘唐、王红伟、李亭升和四川大学苹果俱乐部的同学们。苹果公司的端木恒先生完美地完成了本书的终稿技术审校工作,将本书的质量提升到新的高度。
感谢苹果公司夏鹏先生对本书的出版给予的极大帮助。感谢四川大学计算机学院院长周激流教授、唐宁九教授、谢汶副教授、未敏教授、邰明松老师、卢莉老师和中国电力出版社,感谢他们对本书提供了很多有益的建议和热情的支持。...
译者
2007年10月
前言回到顶部↑
Mac OS X是一套经过精心设计的、无与伦比的操作系统,正如设计精良的高级跑车一样。.
Mac OS X的系统内部拥有基于Unix的强劲引擎,名叫Darwin。该引擎最初由Apple创始的开源组织研发,建立在FreeBSD 4.4以及Mach 3.0微内核技术之上。随着计算机技术的不断发展,Darwin内核也在不断更新,不断加入FreeBSD后续版本及其他技术的各种特性。操作系统的外层则是设计精美的GUI(图形用户界面),它的易用性远超过任何桌面型操作系统,包括Windows系列和Linux上的GNOME、KDE。
苹果公司发布的最新版本桌面系统是MacOS X 10.5(代号为Leopard,美洲豹),在桌面计算和网络计算方面又有了新的突破。2006年8月,苹果公司在苹果全球开发商大会(Worldwide Developer Conference,WWDC)上向参会人员第一次公布了Leopard的开发人员预览版,并在2007年10月发布了Leopard的正式版本。Leopard在以前MacOSX版本的基础上做了许多修正和改进,例如进一步增强了Cocoa应用程序编程接口(APIs)的功能。该APIs也就是我们常说的Cocoa框架,它被公认为目前世界上最优异的GUI应用程序开发环境。同时,Cocoa还提供了一套库(Library)和运行环境(Runtime),构成功能强大的开发平台,在此平台上我们可以随心所欲地构建应用程序。
在开发Cocoa应用程序时,开发人员可以选择下面三种语言来使用Cocoa的APIs:Objective-C、Java和AppleScript。本书英文版第二版时从《Learning Cocoa》改为《Learning Cocoa with Objective-C》,它的英文原版根据早先的Jaguar特性做了彻底的修正和更新,而在翻译此书的中文版《Cocoa入门—使用Objective-C》时,又将内容针对自Panther到Leopard以来的变更做了修正和更新,向您介绍了如何使用Objective-C和Cocoa框架来构建MacOSX上的Cocoa应用程序。
作为一本关于Cocoa开发的入门书籍,《Cocoa入门—使用Objective—C》介绍了以下内容:
·使用Objective—C介绍面向对象编程所涉及到的一些基本概念。
·如何使用苹果的开发工具,重点介绍了Xcode和Interface Builder的使用。
·通过构建简单的应用程序,向您详细而系统地介绍了如何使用Cocoa的框架(包括Foundation与Application Kit)。
您在本书前面章节中所学到的概念,将会在后面章节中用到。在前面章节中构建的示例程序,将会在后面章节中变得更加复杂。通过本书的学习,您将全面地掌握Cocoa和Objective—C的内容,并为今后更加深入的研究打下良好的基础。这里有几本书,可以作为您进一步学习的参考:
·Building Cocoa Applications:A Step-by-Step Guide,作者Simson Garfinkel和Michael K.Mahoney(由O'Reilly出版)
·Cocoa Programming for Mac OS X,作者Aaron Hillegass(由Addison—Wesley出版)
·Cocoa Programming,作者Scott Anguish、Erik Buck和Donald Yacktman(由Sams出版)
尽管这些书都是讲如何使用Objective—C进行Cocoa编程,但每本书的学习侧重点略有不同。编程是一门有趣的艺术,有时候对于同一个问题如果掌握了不同的解决方法就会对系统开发非常有价值。想要成为一名出色的程序员,您最好阅读上面的每一本书,并从中总结出需要了解的内容。
除了上面所列的书籍以外,您还可以参考苹果公司所提供的大量技术文档。这些文档随同开发工具一起被安装在系统中,您可以在Xcode的帮助菜单中找到它们。如果能够连接互联网,也可以在http://developer.apple.com或http://developer.apple.com.cn网站上浏览在线文档。
注意: 当苹果公司更新文档的时候,他们一般会首先将修正后的版本放到互联网上,所以您最好将相关链接保存,以便日后访问。
不仅如此,您还可以参考一些其他的在线资源,包括订阅各种邮件列表以及访问相关网站。
本书的读者
这本书的标题本身就暗示了它是一本学习性的书籍,是专门为Cocoa和Objective-C的初学者准备的。本书假定您已经掌握了ANSIC的基础知识,并且已经学习了面向对象编程的基本概念。如果您对C语言不太熟悉,同时也没有用Java或其他语言编写过程序,那最好先不要阅读本书。相反,如果您对Objective—C已经非常熟悉,或者曾经在NeXTSTEP系统上进行过程序开发,那这本书对您来说则是太简单了。它主要适合于初学者,对有经验的开发人员来说用处不大。
谁该阅读本书
正如上面所提到的,这本书为那些想要使用Objective—C语言开发Cocoa应用程序的程序员所编写的。它假定您已经学习过C语言编程,并且还具备计算机科学方面的基础知识。如果您对C语言或者Java语言都很熟悉的话,学习Objective—C语言将不会有任何问题。
Mac OS X的系统内部拥有基于Unix的强劲引擎,名叫Darwin。该引擎最初由Apple创始的开源组织研发,建立在FreeBSD 4.4以及Mach 3.0微内核技术之上。随着计算机技术的不断发展,Darwin内核也在不断更新,不断加入FreeBSD后续版本及其他技术的各种特性。操作系统的外层则是设计精美的GUI(图形用户界面),它的易用性远超过任何桌面型操作系统,包括Windows系列和Linux上的GNOME、KDE。
苹果公司发布的最新版本桌面系统是MacOS X 10.5(代号为Leopard,美洲豹),在桌面计算和网络计算方面又有了新的突破。2006年8月,苹果公司在苹果全球开发商大会(Worldwide Developer Conference,WWDC)上向参会人员第一次公布了Leopard的开发人员预览版,并在2007年10月发布了Leopard的正式版本。Leopard在以前MacOSX版本的基础上做了许多修正和改进,例如进一步增强了Cocoa应用程序编程接口(APIs)的功能。该APIs也就是我们常说的Cocoa框架,它被公认为目前世界上最优异的GUI应用程序开发环境。同时,Cocoa还提供了一套库(Library)和运行环境(Runtime),构成功能强大的开发平台,在此平台上我们可以随心所欲地构建应用程序。
在开发Cocoa应用程序时,开发人员可以选择下面三种语言来使用Cocoa的APIs:Objective-C、Java和AppleScript。本书英文版第二版时从《Learning Cocoa》改为《Learning Cocoa with Objective-C》,它的英文原版根据早先的Jaguar特性做了彻底的修正和更新,而在翻译此书的中文版《Cocoa入门—使用Objective-C》时,又将内容针对自Panther到Leopard以来的变更做了修正和更新,向您介绍了如何使用Objective-C和Cocoa框架来构建MacOSX上的Cocoa应用程序。
作为一本关于Cocoa开发的入门书籍,《Cocoa入门—使用Objective—C》介绍了以下内容:
·使用Objective—C介绍面向对象编程所涉及到的一些基本概念。
·如何使用苹果的开发工具,重点介绍了Xcode和Interface Builder的使用。
·通过构建简单的应用程序,向您详细而系统地介绍了如何使用Cocoa的框架(包括Foundation与Application Kit)。
您在本书前面章节中所学到的概念,将会在后面章节中用到。在前面章节中构建的示例程序,将会在后面章节中变得更加复杂。通过本书的学习,您将全面地掌握Cocoa和Objective—C的内容,并为今后更加深入的研究打下良好的基础。这里有几本书,可以作为您进一步学习的参考:
·Building Cocoa Applications:A Step-by-Step Guide,作者Simson Garfinkel和Michael K.Mahoney(由O'Reilly出版)
·Cocoa Programming for Mac OS X,作者Aaron Hillegass(由Addison—Wesley出版)
·Cocoa Programming,作者Scott Anguish、Erik Buck和Donald Yacktman(由Sams出版)
尽管这些书都是讲如何使用Objective—C进行Cocoa编程,但每本书的学习侧重点略有不同。编程是一门有趣的艺术,有时候对于同一个问题如果掌握了不同的解决方法就会对系统开发非常有价值。想要成为一名出色的程序员,您最好阅读上面的每一本书,并从中总结出需要了解的内容。
除了上面所列的书籍以外,您还可以参考苹果公司所提供的大量技术文档。这些文档随同开发工具一起被安装在系统中,您可以在Xcode的帮助菜单中找到它们。如果能够连接互联网,也可以在http://developer.apple.com或http://developer.apple.com.cn网站上浏览在线文档。
注意: 当苹果公司更新文档的时候,他们一般会首先将修正后的版本放到互联网上,所以您最好将相关链接保存,以便日后访问。
不仅如此,您还可以参考一些其他的在线资源,包括订阅各种邮件列表以及访问相关网站。
本书的读者
这本书的标题本身就暗示了它是一本学习性的书籍,是专门为Cocoa和Objective-C的初学者准备的。本书假定您已经掌握了ANSIC的基础知识,并且已经学习了面向对象编程的基本概念。如果您对C语言不太熟悉,同时也没有用Java或其他语言编写过程序,那最好先不要阅读本书。相反,如果您对Objective—C已经非常熟悉,或者曾经在NeXTSTEP系统上进行过程序开发,那这本书对您来说则是太简单了。它主要适合于初学者,对有经验的开发人员来说用处不大。
谁该阅读本书
正如上面所提到的,这本书为那些想要使用Objective—C语言开发Cocoa应用程序的程序员所编写的。它假定您已经学习过C语言编程,并且还具备计算机科学方面的基础知识。如果您对C语言或者Java语言都很熟悉的话,学习Objective—C语言将不会有任何问题。
书摘回到顶部↑
第一部分Cocoa概述和基础
第1章Cocoa介绍
Cocoa为创建应用程序提供了一个功能丰富的支撑层。它拥有一个包罗万象的面向对象API集,与Mac OS X提供的众多技术相辅相成。这些技术大部分继承自NeXTSTEP操作系统,而另一些则源于Mac OS X的内核BSD Unix系统。还有一些技术源于早期的Macintosh环境,但已经更新升级,能与现代操作系统共同工作。多数情况下您都能毫无察觉地享用这些底层技术带来的优势,而且从本质上来说是免费而自由地使用。有时候您可能也要直接使用这些技术,鉴于Cocoa优秀的构建方式,只需简单而直接的API调用即可。
本章概述了Mac OS X的编程环境和Cocoa在其中的地位。接着您将学到组成Cocoa API的其中两个框架(Framework)——Foundation和Application Kit,当然还有它们提供的功能。
Mac OS X编程环境
Mac OS X提供了五个主要的应用程序环境:
Carbon
它是一组工作在Mac OS X上的面向过程的API。这些接口最初继承自早期的Mac OS Toolbox API集合,经过修改后,使其适合Mac OS X的保护内存环境和抢占式任务调度。作为一套过渡性API,Carbon为开发人员提供了一条明确的途径:无需完全重写编码,就能将早先遗留的应用程序到移植Mac OS X上。比如AdobePhotoshop CS2和Microsoft Office 2004都是Carbon应用程序。如果你想了解更多关于Carbon的知识,请查看Xcode帮助中的开发文档或者参阅《LearningCarbon》(O’Reilly出版)。
Cocoa它是一组面向对象的API,这些API源于NeXT操作系统的技术,而这些技术又利用了Carbon的很多特性。使用Cocoa APl进行编程正是本书的重点。很多Mac OS X中内建的应用程序,如Mail和Safari都是使用Cocoa编写的。此外,很多苹果机上的最新应用程序,例如iLife套件,iChat及Photo Booth,也都使用了Cocoa。
Java它是一个健壮而快捷的虚拟机环境,用于运行使用Java开发工具包(JDK)开发的应用程序。Java应用程序通常具有跨平台特性,无需修改和重新编译,就能在多种计算环境中运行。
BSD UnixMac OS X的BSD层提供了丰富、健壮、成熟的工具集和系统调用。标准的BSD工具,实用工具,API及函数都可用于应用程序。命令行环境就是这层的一部分。
Classic
它是一种兼容环境,用于支持系统运行早先的Mac OS X或Mac OS 9下的应用程序,这些程序没有后续更新,不能很好地发挥Mac OS X的优势。Classic从本质上讲是Mac OS 9的改进版本,它运行在一个与操作系统其他部分存在特殊钩子操作(hook)的进程当中。随着时间的推移,越来越多的应用程序已移植到Mac OS X上运行,使得Classic变得不那么重要,从Mac OS X 10.5开始,苹果公司已正式废弃了Classic环境,不在Mac OS X中提供。
所有这些应用程序环境都在一定程度上依赖于操作系统的其他部分。图1.1给出了简要的层次图示,描绘了Mac OS X应用程序的环境,以及它们与操作系统其他主要部分的关系。如图1-1所示,Mac OS X的应用程序环境均依赖于操作系统底层所提供的功能。这些功能大体上可分为两个主要部分:一个是Core Foundation,它向Cocoa,Carbon,Java框架提供了一套通用的应用集和核心服务;另一个是内核环境(kernel environment),它是操作系统底层基于Unix的核心。
Cocoa定义
Cocoa是一个先进的面向对象框架,主要用于构建运行在苹果Mac OS X上的应用程序。它把共享对象库,运行环境系统及开发环境完整地整合在了一起。Cocoa提供的基础体系满足大部分图形界面应用程序的典型需要,并将应用程序与操作系统内部的工作互相隔离。
可以把Cocoa理解为一个对象层,它充当程序与操作系统之间的媒介与协调人的角色。这些对象覆盖了从基本类型的简单封装,如字符串和数组,到复杂的功能,如分布式计算和高级影像处理。它们被设计于一个复杂而精巧的体系之上,以简化编程工作,轻松创建图形界面的应用程序。
基于Cocoa的应用程序并不仅局限于使用Cocoa框架中的特性。它们也能使用Mac OS X中的其他框架的全部功能,例如Quartz、QuickTime、OpenGL、ColorSync等等。由于Mac OS X是建立在一个基于BSD的坚固系统Darwin之上,Cocoa应用程序可使用Unix系统的所有核心功能,并按程序需要使用底层的文件系统、网络服务和设备。
Cocoa的历史
Cocoa其实已存在很长时间,几乎与Macintosh一样久远。它很大程度上基于OpenStep,于1987年与典雅的NeXT cube电脑一起以NeXTSTEP的名字公布于世。当时NeXTSTEP的目标正如只有Steve Jobs才敢宣称的“创造下一个疯狂而伟大的事物”。它的发展经历很多版本,被众多公司采纳作为开发和部署环境,并被广泛报道,十分火热。它基于领先当时世面上任何产品很多年的设计,成为一种强悍的技术延续至今。NeXTSTEP建立在由加州大学伯克利分校(UC Berkeley)开发的BSD Unix和卡内基梅隆大学(Carnegie—Mellon University)开发的Mach微内核基础之上。它利用了Adobe公司开发的Display PostScript技术(允许使用与PostScript页面描述语言相同的代码)来实现在屏幕上显示文档和输出打印文档。NeXTSTEP包含一组被称为“框架”(Framework)的库,还有一些工具,使开发人员能够用Objective-C语言构建应用程序。
第1章Cocoa介绍
Cocoa为创建应用程序提供了一个功能丰富的支撑层。它拥有一个包罗万象的面向对象API集,与Mac OS X提供的众多技术相辅相成。这些技术大部分继承自NeXTSTEP操作系统,而另一些则源于Mac OS X的内核BSD Unix系统。还有一些技术源于早期的Macintosh环境,但已经更新升级,能与现代操作系统共同工作。多数情况下您都能毫无察觉地享用这些底层技术带来的优势,而且从本质上来说是免费而自由地使用。有时候您可能也要直接使用这些技术,鉴于Cocoa优秀的构建方式,只需简单而直接的API调用即可。
本章概述了Mac OS X的编程环境和Cocoa在其中的地位。接着您将学到组成Cocoa API的其中两个框架(Framework)——Foundation和Application Kit,当然还有它们提供的功能。
Mac OS X编程环境
Mac OS X提供了五个主要的应用程序环境:
Carbon
它是一组工作在Mac OS X上的面向过程的API。这些接口最初继承自早期的Mac OS Toolbox API集合,经过修改后,使其适合Mac OS X的保护内存环境和抢占式任务调度。作为一套过渡性API,Carbon为开发人员提供了一条明确的途径:无需完全重写编码,就能将早先遗留的应用程序到移植Mac OS X上。比如AdobePhotoshop CS2和Microsoft Office 2004都是Carbon应用程序。如果你想了解更多关于Carbon的知识,请查看Xcode帮助中的开发文档或者参阅《LearningCarbon》(O’Reilly出版)。
Cocoa它是一组面向对象的API,这些API源于NeXT操作系统的技术,而这些技术又利用了Carbon的很多特性。使用Cocoa APl进行编程正是本书的重点。很多Mac OS X中内建的应用程序,如Mail和Safari都是使用Cocoa编写的。此外,很多苹果机上的最新应用程序,例如iLife套件,iChat及Photo Booth,也都使用了Cocoa。
Java它是一个健壮而快捷的虚拟机环境,用于运行使用Java开发工具包(JDK)开发的应用程序。Java应用程序通常具有跨平台特性,无需修改和重新编译,就能在多种计算环境中运行。
BSD UnixMac OS X的BSD层提供了丰富、健壮、成熟的工具集和系统调用。标准的BSD工具,实用工具,API及函数都可用于应用程序。命令行环境就是这层的一部分。
Classic
它是一种兼容环境,用于支持系统运行早先的Mac OS X或Mac OS 9下的应用程序,这些程序没有后续更新,不能很好地发挥Mac OS X的优势。Classic从本质上讲是Mac OS 9的改进版本,它运行在一个与操作系统其他部分存在特殊钩子操作(hook)的进程当中。随着时间的推移,越来越多的应用程序已移植到Mac OS X上运行,使得Classic变得不那么重要,从Mac OS X 10.5开始,苹果公司已正式废弃了Classic环境,不在Mac OS X中提供。
所有这些应用程序环境都在一定程度上依赖于操作系统的其他部分。图1.1给出了简要的层次图示,描绘了Mac OS X应用程序的环境,以及它们与操作系统其他主要部分的关系。如图1-1所示,Mac OS X的应用程序环境均依赖于操作系统底层所提供的功能。这些功能大体上可分为两个主要部分:一个是Core Foundation,它向Cocoa,Carbon,Java框架提供了一套通用的应用集和核心服务;另一个是内核环境(kernel environment),它是操作系统底层基于Unix的核心。
Cocoa定义
Cocoa是一个先进的面向对象框架,主要用于构建运行在苹果Mac OS X上的应用程序。它把共享对象库,运行环境系统及开发环境完整地整合在了一起。Cocoa提供的基础体系满足大部分图形界面应用程序的典型需要,并将应用程序与操作系统内部的工作互相隔离。
可以把Cocoa理解为一个对象层,它充当程序与操作系统之间的媒介与协调人的角色。这些对象覆盖了从基本类型的简单封装,如字符串和数组,到复杂的功能,如分布式计算和高级影像处理。它们被设计于一个复杂而精巧的体系之上,以简化编程工作,轻松创建图形界面的应用程序。
基于Cocoa的应用程序并不仅局限于使用Cocoa框架中的特性。它们也能使用Mac OS X中的其他框架的全部功能,例如Quartz、QuickTime、OpenGL、ColorSync等等。由于Mac OS X是建立在一个基于BSD的坚固系统Darwin之上,Cocoa应用程序可使用Unix系统的所有核心功能,并按程序需要使用底层的文件系统、网络服务和设备。
Cocoa的历史
Cocoa其实已存在很长时间,几乎与Macintosh一样久远。它很大程度上基于OpenStep,于1987年与典雅的NeXT cube电脑一起以NeXTSTEP的名字公布于世。当时NeXTSTEP的目标正如只有Steve Jobs才敢宣称的“创造下一个疯狂而伟大的事物”。它的发展经历很多版本,被众多公司采纳作为开发和部署环境,并被广泛报道,十分火热。它基于领先当时世面上任何产品很多年的设计,成为一种强悍的技术延续至今。NeXTSTEP建立在由加州大学伯克利分校(UC Berkeley)开发的BSD Unix和卡内基梅隆大学(Carnegie—Mellon University)开发的Mach微内核基础之上。它利用了Adobe公司开发的Display PostScript技术(允许使用与PostScript页面描述语言相同的代码)来实现在屏幕上显示文档和输出打印文档。NeXTSTEP包含一组被称为“框架”(Framework)的库,还有一些工具,使开发人员能够用Objective-C语言构建应用程序。
【插图】


点击看大图






加载中...
