没有合适的资源?快使用搜索试试~ 我知道了~
首页Cocoa 基本原理指南.pdf (中文)
对于刚刚加入这个阵营的开发者来说, Cocoa像是一个巨大而未知的新世界。Cocoa开发环 境的各种特性、工具、概念、术语、编程接口、甚至是编程语言对他们来说可能都比较生 疏。 Cocoa基本原理指南提供了领略Cocoa技术景致的方向,介绍Cocoa的特性、基本概 念、专用术语、结构、以及潜在的设计模式,使开发者更加容易上手。 Cocoa基本原理指南的组织结构使读者可以逐步获取有关Cocoa开发的一般性知识。它从最 基础的信息开始 —即Cocoa有什么组件和能力,以考察Cocoa的主要架构作为结束。每一章都建立在前一章内容的基础上,每个部分都给出某个主题的重要细节,但又仅仅在较高的级别上进行描述。文中还提供很多指引,方便读者了解其它更为详尽的文档。 在Cocoa的开发文档中,Cocoa基本原理指南是介绍Cocoa概念的初级文档,是诸如Cocoa 描画指南和 Cocoa的视编程指南这类文档的先期读物。阅读Cocoa基本原理指南需要的前提条件很少,但读者必须是熟练的 C程序员,且应该熟悉Mac OS X的能力和技术。您可以通过阅读 Mac OS X技术概览一书来获得这些知识。
资源详情
资源评论
资源推荐

Cocoa基本原理指南的介绍
本部分包含如下内容:
本文的组织
相关信息
对于刚刚加入这个阵营的开发者来说,Cocoa像是一个巨大而未知的新世界。Cocoa开发环
境的各种特性、工具、概念、术语、编程接口、甚至是编程语言对他们来说可能都比较生
疏。Cocoa基本原理指南提供了领略Cocoa技术景致的方向,介绍Cocoa的特性、基本概
念、专用术语、结构、以及潜在的设计模式,使开发者更加容易上手。
Cocoa基本原理指南的组织结构使读者可以逐步获取有关Cocoa开发的一般性知识。它从最
基础的信息开始—即Cocoa有什么组件和能力,以考察Cocoa的主要架构作为结束。每一章
都建立在前一章内容的基础上,每个部分都给出某个主题的重要细节,但又仅仅在较高的级
别上进行描述。文中还提供很多指引,方便读者了解其它更为详尽的文档。
在Cocoa的开发文档中,Cocoa基本原理指南是介绍Cocoa概念的初级文档,是诸如Cocoa
描画指南和Cocoa的视编程指南这类文档的先期读物。阅读Cocoa基本原理指南需要的前提
条件很少,但读者必须是熟练的C程序员,且应该熟悉Mac OS X的能力和技术。您可以通
过阅读Mac OS X技术概览一书来获得这些知识。
本文的组织
Cocoa基本原理指南有如下几个章节:
! 1.! "什么是Cocoa?" 从功能和大体架构的角度介绍什么是Cocoa,描述它的各种特性、
框架、和开发环境。
! 2.! "Cocoa对象" 解释Objective-C的基本用法和优点,以及Cocoa对象的常见行为、接
口、和生命周期。
! 3.! "为Cocoa程序添加行为" 描述如何使用Cocoa框架来编写程序,解释如何创建一个子
类。
! 4.! "Cocoa的设计模式" 描述Cocoa采纳的设计模式,特别是模型-视-控制器对象模
型。
! 5.! "和对象进行通讯" 讨论Cocoa对象之间的通讯机制和编程接口,包括委托、通告、和
绑定技术。
! 6.! "核心应用程序架构" 考察应用程序对象之间的关系,Cocoa通过这些对象来进行描画
和事件处理。
! 7.! "其它Cocoa架构" 总结Cocoa支持应用程序开发和扩展应用程序能力的主要架构。

相关信息
您可以在技术书店里找到几个介绍Cocoa的优秀读物,用以补充Cocoa基本原理指南一书中
的知识。此外,在开始成为Cocoa开发者之前,您还应该阅读一些苹果公司出版的其它资
料:
! ▪! Objective-C编程语言 描述Objective-C编程语言和运行环境。
! ▪! Cocoa应用程序教程 向您演示如何用Xcode开发环境、Cocoa框架、以及用
Objective-C创建一个简单的Cocoa应用程序。
! ▪! 模型对象实现指南 讨论子类设计和实现的基本问题。
什么是Cocoa?
在Mac OS X操作系统上,Cocoa和Carbon及Java一样,是一种应用程序环境。它由一组面
向对象的软件库和一个运行环境组成,它的集成开发环境和其它应用程序环境相同。
本章将在这个定义的基础上进行扩展,描述Cocoa的目标、能力、和物理形式。作为一个开
发者,阅读这个功能描述是理解Cocoa的第一步。
本部分包含如下内容:
Cocoa的环境
Cocoa应用程序的特性
开发环境
Cocoa框架
一点历史
Cocoa的环境
Cocoa应用程序正逐渐成为Mac OS X的应用程序标准。iPhoto、Safari、和Mail都是
Cocoa应用程序。这些应用程序由于聪明的设计、丰富的功能、和激动人心的用户界面而受
到了相当程度的好评。但是,对于一般用户来说并不明显(和典型的开发周期相比)的是:
这些程序从设计阶段到最终部署的过程是多么的快速。作为应用程序开发环境,是什么使
Cocoa成为比Carbon切实可行、甚至是强制性的替代呢?
本部分包含如下内容:
介绍Cocoa
Cocoa在Mac OS X中的位置

介绍Cocoa
和所有的应用程序环境一样,Cocoa包括两个方面:即运行环境方面和开发方面。在运行环
境方面,Cocoa应用程序呈现Aqua用户界面,且和操作系统的其它可视部分紧密集成,这
些部分包括Finder、Dock、和基于所有环境的其它应用程序。Cocoa无缝地成为了用户体
验的一部分,在运行环境方面表现优秀。
但是,程序员更感兴趣的是开发方面。Cocoa是一个面向对象的软件组件—类—的集成套
件,它使开发者可以快速创建强壮和全功能的Mac OS X应用程序。这些类是可复用和可支
配的软件积木,开发者可以直接使用,或者根据具体需求对其进行扩展。从用户界面对象到
Bonjour网络,几乎每个想象得到的开发需求都存在对应的Cocoa类;对于没有预想到的需
求,您可以轻松地从现有类派生出子类来实现。
在各种面向对象的开发环境中,Cocoa有着最为著名的血统。从1989年作为NeXTSTEP推
出到现在,人们一直对它进行精化和测试(参见"一点历史"部分)。它优雅而强大的设计完
美地适合所有类型的快速软件开发:不仅适合开发应用程序,也适合开发命令行工具、插
件、和不同类型的程序包。Cocoa为您的应用程序“免费”提供很多行为和外观,使您可以将
更多的时间用于有特色的功能上(有关Cocoa提供的功能的详细信息,请参见"Cocoa应用
程序的特性"部分)。
在开发Cocoa软件的时候,您可以使用多种编程语言。基本的语言是Objective-
C。Objective-C拥有自己的Cocoa运行环境,是ANSI C的超集,它在ANSI C的语法和语义
特性上(从Smalltalk派生而来)进行扩展,使之支持面向对象的编程。新增的规则简单而
又易于学习和使用。由于Objective-C是基于ANSI C的,您可以自由地将C代码直接和
Objective-C代码混合在一起。而且,您的代码可以调用非Cocoa的编程接口中定义的所有
函数,比如Carbon和BSD。您甚至可以将C++代码混合到Cocoa代码中,并将它们连接在
同一个执行文件中。最后,Cocoa支持Java。Cocoa为此定义了一个平行的Java类库,并且
实现了一个将Java接口映射到Objective-C实现的桥机制。Cocoa的Java支持使您可以将本
地的Java对象和Cocoa对象混合在一起使用(在某些限制下)。
重要信息:Cocoa-Java是熟悉Java语言的开发者的学习环境,我们并不推荐将它用于产品
开发。Objective-C API会不断进化,而Cocoa-Java API并不并行维护。
您甚至可以用PyObjC,即Python/Objective-C桥来进行Cocoa编程。基于PyObjC,您可
以用Python来书写Cocoa程序。Python是一种解释性的、注重交互的、及面向对象的编程
语言。PyObjC使Python对象可以向Objective-C对象传递消息,就象传递给Python对象一
样;同时还使Objective-C对象可以向Python对象传递消息。更多信息请参见"用Python开
发基于PyObjC的Cocoa应用程序"文档,它位于苹果开发者联盟(Apple Developer
Connection)网站上。
核心的Cocoa类库封装在两个框架中,即Foundation和Application Kit框架。和所有框架
一样,这两个框架不仅包含动态共享库(有时是几个兼容版本的库),还包含头文件、API
文档、和相关的资源。Application Kit和Foundation框架的分割反映了Cocoa编程接口分
为图形用户界面部分和非图形接口。这两个框架对于最终产品为应用程序的Cocoa工程来说
都是必要的。还有几个较小的、使用Cocoa编程接口的框架和Mac OS X一起发行,比如
Screen Saver(屏幕保护)和Address Book(地址簿)框架。随着时间的推移,还会有更
多框架加入到操作系统中。更多信息请参见"Cocoa框架"部分。

Cocoa在Mac OS X中的位置
图1-1显示了一个简化了的Mac OS X系统架构框图:
图1-1!!Mac OS X架构—简化视图
这个框图只是为了一个简单的目的:为那些不熟悉苹果平台的开发者明确指出Mac OS X的
主要组件及其依赖性。为了简洁,图中省略了一些重要细节,并使其它部分变得模糊。这些
细节构成了框图的重要部分,显示Cocoa和Mac OS X其它部分的关系。
图1-2在架构级别上更为精确地反映了Cocoa的位置。这个框图将Mac OS X显示为一系列
的软件层,从系统的基础Darwin到各种应用程序环境。位于中间的层代表包含在Core
Services(核心服务)和Application Services(应用程序服务)这两个主要的雨伞框架下
的系统软件。在这个框图中,一个层通常依赖于其下面的其它层。
图1-2!!Cocoa在Mac OS X架构中的位置
在某些方面,这个框图类似于先前的框图。举例来说,主要负责Aqua用户界面渲染的系统
组件Quartz(在Core Graphics框架中实现)是Application Services层的一部分。架构栈
的基础部分是Darwin,包括Cocoa在内的Mac OS X各个部分最终都依赖于Darwin。
但是,如果您进一步查看雨伞框架中的一个(或一组)Cocoa子类或特定的子框架,就会发
现Cocoa或者对Mac OS X其它部分有特定的依赖性,或者通过自身的接口向外部提供基础
的技术。图1-3部分显示了上述的依赖性和外部接口。
请注意:虽然Cocoa依赖于特定的框架,但它并不是仅仅“坐”在这些框架的上面。在某些情
况下,Cocoa和其它框架(比如Carbon)是对等的,甚至可以实现一些其它对等框架不能
实现的任务。Cocoa不仅仅是基础技术上面的一个面向对象的封装层。

图1-3!!进一步考察Cocoa架构—一些主要的依赖关系
苹果公司对Cocoa进行了认真的设计,使Cocoa编程接口成为应用程序通常需要的基础技术
访问通道。但是如果您需要的某些能力不能在Cocoa的接口中找到,或者需要对应用程序进
行更为精细的控制,那么也可以直接使用底层的框架(Core Graphics就是一个重要的例
子,通过调用该框架或OpenGL的函数,您的代码可以画出比Cocoa描画方法能做到的、更
加复杂而具有细微差别的图像)。幸运的是,使用这些低级别的框架并不是问题,因为绝大
多数依赖框架的编程接口是用ANSI C写的,Objective-C是其超集。
请注意:架构概述部分的目的并不是列举出Cocoa有哪些接口或者它对Mac OS X其它部分
有哪些依赖性。相反,概述部分只是考虑最有趣的部分,目的是给您一个有关框架架构的基
本思想。
Cocoa依赖的、或者通过类和方法为之提供访问通道的主要基础框架有Core
Foundation,Carbon,Core Graphics (Quartz),Launch Services,和Print Core (打
印子系统)。详细信息如下:
" ▪" Core Foundation。Foundation框架的很多类都基于Core Foundation中对应的封
装类型。它们之间的这种紧密关系使“免费桥接”技术—即在兼容的Core Foundation
和Foundation类型之间实现类型转换—成为可能。某些Core Foundation的实现又
基于Darwin 层的BSD部分。
" ▪" Carbon。Cocoa使用了Carbon提供的某些服务,因为有些Carbon框架在Core
Services和Application Services层中定位为系统级别的服务。作为例子,Carbon
Core就是这些框架中特别重要的一个,Cocoa使用了它提供的File Manager(文件
管理器)组件来进行不同文件系统表示之间的转换。
" ▪" Core Graphics。Cocoa描画和图像处理类(相当自然且紧密地)基于Core
Graphics框架,它实现了Quartz和窗口服务器组件。
" ▪" Launch Services。NSWorkspace类负责向外提供Launch Services的潜在能
力。Cocoa还使用Launch Services提供的应用程序注册功能来获取与应用程序及文
档相关联的图标。
" ▪" Print Core。Cocoa的打印类是打印子系统的一个面向对象的接口。
此外,Cocoa还使用Carbon环境的Text Encoding Converter(文本编码转换器)服务来
处理一些字符串编码转换。还有一些Cocoa方法向外提供I/O Kit框架、QuickDraw (QD)框
剩余234页未读,继续阅读












安全验证
文档复制为VIP权益,开通VIP直接复制

评论9