附录A 术语表

本附录包含了很多将会用到的术语的非正式定义。有些术语直接与Objective-C语言本身有关,而其他术语则有自己的语源,这些语源来自于面向对象程序设计的规范。在后一种情况中,术语的含义只在术语明确地应用于Objective-C时,才提供定义。

抽象类为了更方便地创建子类,而定义的类。实例是从子类创建的,而不是从抽象类。同时参见具体子类。

存取器方法可获得或设置实例变量值的方法。使用存取器方法可设置和检索实例变量的值,这与数据封装的方法论是相一致的。

Application Kit用于开发应用程序用户界面的框架,用户界面包含各种对象,如菜单、工具栏和窗口。该框架是Cocoa的组成部分,通常称为AppKit。

归档将对象数据的表示转换成一种以后可恢复(解归档)的格式。

数组一个有序的值集合。数组可定义为Objective-C中的基本类型,并且通过NSArray和NSMutableArray类实现为Foundation下的对象。

自动变量进入一个语句块时自动分配空间、退出语句块时自动释放的变量。自动变量的作用域限于定义它的程序块之内,并且这些变量没有默认的初始值。它们的前面可以可选地放置关键字auto。

自动释放池定义在Foundation框架中的对象,它跟踪当池本身被释放时将要释放的对象。通过向对象发送autorelease消息可将对象添加到池中。

位域包含一个或多个具有指定位宽度的整数域的结构。可以访问和操作位域,其方式与其他结构成员所用的方式相同。

分类组合到特定名称下的一组方法。分类可以模块化方法的定义,并可用于向现有类添加新方法。

字符串一种以null结尾的字符序列。

类一组实例变量和可访问这些变量的方法。定义类之后,即可创建类的实例(即对象)。

类方法对类对象调用的方法(定义有一个前导的+号)。同时参见实例方法。

类对象标识特定类的对象。可以将类名用作消息的接收者来调用类方法。在其他地方,可以对该类调用class方法来创建类对象。

群集组合了一组私有具体子类的抽象类,它通过抽象类向用户提供了一个简单的接口。

Cocoa一种开发环境,它由Foundation和Application Kit框架组成。

Cocoa Touch一种开发环境,它由Foundation和工厂方法同时参见类方法。

工厂对象同时参见类对象。

UIKit框架组成。

正式协议使用@protocol指令定义在一个名称下的相关方法集。不同的类(不必是相关的)可以采用一个正式协议,只要实现(或继承)这个正式协议的所有方法即可。同时参见非正式协议。

集合一种Foundation框架对象,可以是数组、字典或用于分组和操作相关对象的集。

编译时分析源代码并将其转换成所谓目标码的底层格式的时期。

合成类由来自其他类的对象组成的类。通常,它用作子类的替代物。

转发向另一个方法发送一条消息及相关(多个)参数,以便执行的过程。

具体子类抽象类的子类。可从具体子类创建实例。符合如果类通过直接实现或间接通过继承,采用了协议中的所有方法,则称该类符合这项协议。

Foundation框架类、函数和协议的集合,这些类、函数和协议形成了应用程序开发的基础,同时提供了各种基本工具性程序,如内存管理、文件和URL访问、归档,以及集合、字符串、数字和日期对象的使用。

常量字符串括在一对双引号中的字符序列。如果以@character开头,通常定义NSConstantString类型的常量字符串对象。

框架类、函数、协议、文档、头文件和其他所有相关资源的集合。如,Cocoa框架是用于在Mac OS X下开发交互式图形应用程序的框架。

数据封装将对象的数据存储在对象的实例变量中,并只能通过对象的方法进行访问的概念。这样可维护数据的完整性。

函数利用一个名称标识的语句块,它可以接受通过值传递的一个或多个参数,并且可以选择返回一个值。对于定义函数的文件而言,函数可以是局部的(静态的)也可以是全局的,在后一种情况,可以从定义在其他文件中的函数或方法调用这些函数。

委托指导另一个对象实现某项行为的对象。

指定的初始化函数将调用类或子类(通过向super发送消息)中的其他所有初始化方法的方法。字典在Foundation下,利用NSDictionary和NSMutableDictionary实现的键/值对集合。指令Objective-C中的一种特殊结构,它以at符号(@)开始。@interface、@implementation、@end和@class都是指令的例子。

垃圾回收一种内存管理系统,可自动释放未被引用的对象所使用的内存。iPhone运行时环境中不支持垃圾回收。

gcc它是Free Software Foundation(FSF)开发的一种编译器的名称。gcc支持很多程序设计语言,包括C、Objective-C和C++。gcc是在Mac OS X上编译Objective-C程序所用的标准编译器。

分布式对象(Distributed Object)一个应用程序中的Foundation对象与另一个(很可能是运行在另一台计算机上)应用程序的Foundation对象进行通信的能力。

动态绑定在运行时而不是编译时确定对象将要调用的方法。

gdb由gcc编译的程序的标准调试工具。

取值方法一种存取器方法,可检索实例变量的值。同时参见赋值方法。

动态类型在运行时而不是编译时确定对象所属的类。同时参见静态类型。封装同时参见数据封装。

全局变量在所有方法或函数外部定义的变量,同一个源文件中或将该变量定义为extern的其他源文件中的任何方法或函数都可以访问extern变量同时参见全局变量。

该变量。

头文件包含常见定义、宏和变量声明的文件,可使用#import或#include语句将其包含到程序中。id通用数据类型,可容纳指向任何类型对象的指针。不可变对象不能修改其值的对象。如,Foundation框架中包含的NSString、NSDictionary和NSArray对象。同时参见可变对象。

实现部分用于定义类的部分,它包含声明在相应接口部分(或者由协议定义所指定的)的方法的实际代码(即实现)。

非正式协议作为一个分类(通常作为根类的分类)声明的逻辑上相关的方法集。与正式协议不同,非正式协议中的方法不必全部实现。同时参见正式协议。

继承将一个类的方法和实例变量从根对象开始向下传递到子类的过程。

实例类的具体表示。实例通常通过向类对象发送一条alloc或new消息来创建的对象。

实例方法可被类实例调用的方法。同时参见类方法。

实例变量在接口部分(它包含该对象的每个实例)声明的(或从父类继承来的)变量。实例方法可直接访问它们的实例变量。

Interface Builder Mac OS X下为应用程序构建图形用户界面的工具。

接口部分用于声明类、类的超类、实例变量和方法的部分。对每个方法而言,还声明参数类型和返回类型。同时参见实现部分。

国际化参见本地化。

isa在根对象中定义并且所有对象都要继承的一个特殊的实例变量。isa变量用于在运行时识别对象所属的类。

链接利用一个或多个对象文件并将它们转换成可执行程序的过程。

局部变量作用域限于定义它的程序块之内的变量。对于方法、函数或语句块局部,变量可以是局部的。

本地化使程序适合在特定的地理区域内执行的过程,通常是通过将消息转换成本地语言,并处理各种情况(如当地时区、货币符号、日期格式等)实现的。有时本地化只是指语言翻译过程,而术语国际化则表示这一过程的其余方面。

消息发送给对象(接收者)的方法及相应的参数。消息表达式括在一对方括号中的表达式,它指定对象(接收者)和发送给该对象的消息。

方法属于某个类的过程,通过向该类的对象或实例发送消息,可以执行方法。同时参见类方法和实例方法。

可变对象值可更改的对象。Foundation框架支持可变和不可变数组、集、字符串和字典。同时参见不可变对象。

nil一个id类型的对象,用来表示无效对象。它的值定义为0。可向nil发送消息。

通知当发生特殊事件时,向已注册的可收到警告(通知)的对象发送消息的过程。

NSObject Foundation框架下的根对象。

空字符值为0的字符。空字符常量用‘\0’表示。空指针无效的指针值。通常定义为0。

对象一组变量和相应的方法。可以向对象发送消息来执行它的方法。

面向对象的程序设计一种基于类、对象并对对象执行操作的程序设计方法。

父类被其他类继承的类。也可称作超类。

指针用于引用另一个对象或数据类型的值。指针在内存中作为特定对象或值的地址来实现。类的实例是一个指针,它指向内存中保存对象数据的位置。

多态来自不同类的对象可接受同一消息的能力。预处理程序首次执行源代码处理行的程序,它以一个#开始,还可能包含特殊的预处理程序语句。常见的用途是使用#define来定义宏指令,包括用#import和#include导入其他源文件,以及用#if、#ifdef和#ifndef有条件地包含源程序行。

过程式程序设计语言使用过程和函数定义程序的语言,过程和函数可操作一组数据。

属性声明这种方法可指定实例变量的属性,允许编译器为实例变量生成无内存泄漏并且线程安全的存取器方法。属性声明也可用于声明存取器方法的属性,这些方法在运行时动态加载。

属性列表使用标准化的和可移植的格式的不同类型对象的表示。通常,属性列表以XML格式进行存储。

协议为了符合协议或采用协议而必须实现的方法列表。协议提供了跨多个类标准化接口的方式。同时参见正式协议和非正式协议。

接收者消息发送给的对象。可以从调用的方法内部作为self来引用接收者。引用计数参见保持计数。

保持计数关于引用对象次数的计数。通过向该对象发送retain消息对其执行加1操作,发送release消息执行减1操作。

根对象位于继承层次结构中最顶层且没有父类的对象。

运行时程序正在执行的那段时间;也指负责执行程序指令的机制。

选择程序(selector)用于选择对象要执行的方法名称。编译的选择程序是SEL类型的,并且可用@selector指令生成。

self在方法内使用的变量,用于引用消息的接收者。

集单值对象的无序集合,可使用NSSet、NSMutableSet和NSCountedSet类在Foundation下实现。

赋值方法这种存取器方法可设置实例变量的值。同时参见取值方法。

语句以分号结束的一个或多个表达式。

语句块括在一对卷曲花括号内的一条或多条语句。局部变量可以在语句块内声明,而它们的作用域也会限制在该语句块中。

静态函数使用关键字static声明的函数,只能由定义在同一源文件中的其他函数或方法调用它。静态类型在编译时显式地识别对象所属的类。同时参见动态类型。

静态变量其作用域限制在定义它的块或模块内的变量。静态变量具有默认的初始值0,且在方法或函数的调用过程中会保持它们的值。

结构一种集合数据类型,它包含不相同类型的成员。可将结构赋值给其他结构,作为参数传递给函数和方法,还可由函数和方法返回。

子类(subclass)也称为“child class”,子类从它的父类或超类继承方法和实例变量。

super方法中使用的关键字,用于引用接收者的父类。

超类特定类的父类。同时参见super。

合并方法编译器自动创建的一种赋值方法或取值方法。Objective 2.0语言中添加了这个方法。

UIKit在iPhone和iTouch上开发应用程序的框架。除了提供可使用普通UI元素(如窗口、按钮和标签)的类以外,它还定义了处理设备特定功能的类型,如加速计和触摸界面。UiKit是Cocoa Touch的一部分。

Unicode字符一种用于表示字符的标准,它来自包含数百万的字符的集。可使用NSString和NSMutableString类来处理包含在Unicode字符中的字符串。

联合一种与结构类似的集合数据类型,它包含的成员共享一个存储区。任意时间只有一个成员可以占用此存储区。

Xcode一种用于程序开发的编译和调试工具,Mac OS X附带提供。

XML可扩展标记语言。它是Mac OS X上生成的属性类表的默认格式。

存储区(zone)为分配数据和对象而指定的内存区域。一个程序可以使用多个存储区以便更有效地管理内存。