没有合适的资源?快使用搜索试试~ 我知道了~
Cocoa基本原理指南-中文版
3星 · 超过75%的资源 需积分: 12 30 下载量 149 浏览量
2011-05-05
10:21:01
上传
评论
收藏 3.16MB PDF 举报
温馨提示
试读
176页
Cocoa基本原理指南-中文版.pdf Cocoa基本原理指南-中文版.pdf
资源推荐
资源详情
资源评论
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. "核心应用程序架构" 考察应用程序对象之间的关系,Coc
oa
通过这些对象来进行描画和事件处理。
7. "其它Cocoa架构" 总结Cocoa支持应用程序开发和扩展应用
程序能力的主要架构。
整理:http://www.aisidechina.com/forum/
相关信息
您可以在技术书店里找到几个介绍 Cocoa 的优秀读物,用以补充 Cocoa
基本原理指南
一书中的知识。此
外,在开始成为 Cocoa 开发者之前,您还应该阅读一些苹果公司出版的其它资料:
Objective-C
编程语言
描述 Objective-C 编程语言和运行环境。
Cocoa
应用程序教程
向您演示如何用 Xcode 开发环境、Cocoa
框架、以及用 Objective-C 创建一个简单的 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 派生而来)进行
原文地址:http://www.apple.com.cn/developer/Documentation/index.html
整理:http://www.aisidechina.com/forum/
扩展,使之支持面向对象的编程。新增的规则简单而又易于学习和使用。由于 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对象传
递消息。更多信息请参见 "用Py
thon开发基
于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(应用程序服务)这两个主要的雨伞框架下的系统软件。在这个框图中,一个层通常
依赖于其下面的其它层。
原文地址:http://www.apple.com.cn/developer/Documentation/index.html
整理:http://www.aisidechina.com/forum/
图 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 (打印子系统)。详细信息如下:
原文地址:http://www.apple.com.cn/developer/Documentation/index.html
整理:http://www.aisidechina.com/forum/
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)框架、 Apple Event (AE)框架、
和 ATS 框架的部分功能,分别用于进行电源管理、QuickDraw 描画、 Apple Event 处理、以及提供字体
支持。
进一步阅读: Mac OS X
技术概浏览
一书给出有关框架、服务、技术、和 Mac OS X 其它组件的概览。
苹
果人机界面指南
一书则专注于说明 Aqua 人机界面的外观和行为。
Cocoa 应用程序的特性
创建一个 Cocoa 应用程序,而又不必编写哪怕一行代码的情况是可能的。在 Xcode 中建立一个新的 Cocoa
工程,然后进行连编就可以了。当然,这个应用程序不做很多工作,至少不做很多有趣的工作。但是,这
个极度简单的应用程序在鼠标双击时仍然可以启动,可以在 Dock 上显示图标,可以显示其主菜单和窗口
(标题为“Window”),可以根据命令将自身隐藏,可以和其它运行着的应用程序互动,还可以处理退出命
令。您可以对这个窗口进行移动、调整尺寸、最小化、和关闭,甚至可以打印包含在窗口中的空白部分。
想像一下如果加入一点代码,您可以做些什么。
在编程方面,Cocoa 为开发者提供很多免费或代价很低的支持。当然,要成为一个高效率的 Cocoa 开发者
意味着要熟悉新的概念、设计模式、编程接口、和开发工具,而这方面的努力并不是无足轻重的。但是熟
能生巧,编程在很大程度上变成一种将 Cocoa 提供的编程组件和负责定义特殊逻辑的定制对象及代码装配
在一起、再将这些装配物组合在一起的练习。
接下来的部分是一个简短的列表,说明 Cocoa 如何为您的应用程序增加价值,而只需要您加入少量的工作
(有时候甚至不需要):
基本应用程序框架—Cocoa 为事件驱动的行为和应用程序、窗口、工作空间(workspace)的管
理提供了基础设施。在大多数情况下,您不必直接处理事件或发送任何描画命令给渲染库。
用户界面对象—Cocoa 为应用程序的用户界面提供了丰富而又现成的对象。这些对象的大部分都
在 Interface Builder(创建用户界面的开发工具)的选盘上,您只要简单地将对象从选盘拖拽到界面
原文地址:http://www.apple.com.cn/developer/Documentation/index.html
整理:http://www.aisidechina.com/forum/
剩余175页未读,继续阅读
资源评论
- wjz11262014-06-23有帮助,感谢分享!
xuwening
- 粉丝: 16
- 资源: 80
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言基础-C语言编程基础之Leetcode编程题解之第39题组合总和.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第38题外观数列.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第37题解数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第36题有效的数独.zip
- C语言基础-C语言编程基础之Leetcode编程题解之第35题搜索插入位置.zip
- index.wxml
- C语言基础-C语言编程基础之Leetcode编程题解之第33题搜索旋转排序数组.zip
- 基于Python实现的手写数字识别系统源码.zip
- 从网页提取禁止转载的文字
- C语言基础-C语言编程基础之Leetcode编程题解之第32题最长有效括号.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功