第20章 Cocoa简介
本书中开发的所有程序都具有简单的用户界面,并依靠NSLog例程在控制台上显示消息。这个例程虽然有用,但其功能十分有限。毫无疑问,Mac上使用的其他程序都是用户友好的。事实上,Mac的良好声誉正是建立在其用户友好的对话框和易用性上。幸运的是,XCode和Interface Builder应用程序的组合可以满足这个要求。这种组合不仅提供了一个包含编辑和调试工具的强大程序开发环境,可以方便地访问在线文档,而且还提供了一个可轻松开发复杂图形用户界面(GUI)的环境。
Cocoa是一种支持应用程序提供丰富用户体验的框架,它实际上由两个框架组成:你已经熟知的Foundation框架,以及Application Kit(或AppKit)框架。后者提供与窗口、按钮、列表等相关的类。
20.1 框架层
一般使用示意图来说明最顶层应用程序与底层硬件之间的各个层次,如图20-1所示。
内核以设备驱动程序的形式提供与硬件的底层通信。它负责管理系统资源,包括调度要执行的程序、管理内存和电源,以及执行基本的I/O操作。
顾名思义,核心服务提供的支持比它上面层次更加底层或更加“核心”。例如,这里提供对集合、网络、调试、文件管理、文件夹、内存管理、线程、时间和电源的管理。
应用程序服务层包含对打印和图形呈现的支持,包括Quartz、OpenGL和Quicktime。
图 20-1 应用程序层次结构
Cocoa层直接位于应用程序层之下。正如图20-1所示,Cocoa包括Foundation和AppKit框架。Foundation框架提供的类用于处理集合、字符串、内存管理、文件系统、存档等。AppKit框架提供的类用于管理视图、窗口、文档和让Mac OS X闻名于世的多信息用户界面。
根据上面的描述,有些层之间的功能似乎有重复。Cocoa层和核心服务层中都存在集合。然而,后者是前者的基础。此外,在某些情况下也可以绕过某一层。例如,有些Foundation类,比如处理文件系统的那些类,直接依赖于核心服务层中的功能,实际上绕过了应用程序服务层。很多情况下,Foundation框架为底层核心服务层(主要用过程化的C语言编写)中定义的数据结构定义了一种面向对象的映射。