1.2 本书的组织方式
本书分为三个逻辑部分:第一部分是“Objective-C 2.0语言”,介绍了该语言的基础知识;第二部分是“Foundation框架”,讲述了如何使用构成Foundation框架的种类丰富的预定义类。第三部分是“Cocoa程序设计和iPhone SDK”,简要介绍了Cocoa的应用程序套件框架,然后逐步演示了如何使用UIKit框架开发简单的iPhone应用,以及如何使用Xcode和Interface Builder开发并调试代码。
框架就是一组从逻辑上组合在一起的类和例程,它们使开发程序更加容易。使用Objective-C进行程序设计时需要的许多能力都来源于大量可用的框架。
第2章首先讲述了如何使用Objective-C编写第一个程序。
因为本书并非主要讲解Cocoa程序设计的,所以在第三部分之前没有过多介绍图形用户界面,甚至很少提及它。这就需要使用一种方法实现程序输入并产生输出。本书中的大多数例子都是从键盘获得输入并在一个窗口中产生输出:如果在命令行使用gcc,那么这个窗口是Terminal窗口;如果使用Xcode,那么这个窗口是控制台窗口。
第3章介绍了面向对象程序设计的基础。本章引入了一些术语,但数量保持了最少。本章还介绍了定义类的机制,以及向实例或对象发送消息的方式。教师或者有经验的Objective-C程序员将会注意到:本书使用静态类型声明对象。我认为这种方法是学生起步的最好方式,因为编译器能捕捉更多的错误,程序有更强的自文档化(self-documenting)功能,同时还能鼓励新程序员显式声明已知的数据类型。这样,id类型的概念及其强大功能直到第9章才会完全显现出来。
第4章描述了基本的Objective-C数据类型以及如何在程序中使用它们。
第5章介绍了可用在程序中的3种循环语句:for、while和do。
决定选择是任何计算机程序设计语言的基础。第6章详细讲述了Objective-C语言的if和switch语句。
第7章更深入地研究了类和对象的使用,详细讨论了方法、方法的多个参数以及本地变量的相关内容。
第8章介绍了继承的主要概念。这一特性使得程序的开发更容易,因为我们可以利用以前编写的代码。使用继承以及子类的概念可以方便地修改和扩展现有的类定义。
第9章讨论了Objective-C语言的3个重要特性。多态、动态类型以及动态绑定是本章的关键概念。
第10章至第13章对Objective-C深入讨论,既包含对象的初始化、协议、分类、预处理程序,还包括一些基本的C语言特性,如函数、数组、结构和指针。第一次开发面向对象的程序时,通常不必(最好避免)使用这些特性。建议你首次通读本书时略过第13章,只在需要了解这门语言的特殊特性的更多内容时再返回来学习它。
第二部分从第14章开始,这部分介绍了Foundation框架以及如何访问它的文档。
第15章至第19章讲解了Foundation框架的重要特性。这包括数字和字符串对象、集合、文件系统、内存管理以及对象的复制和归档。
学习完第二部分后,你将能够使用Foundation框架开发出相当复杂的Objective-C程序。
第三部分从第20章开始,本章简要介绍了应用程序套件,它提供了在Mac上开发复杂图形应用所需的各种类。
第21章介绍了iPhone SDK和Uikit框架。本章阐述了如何以迭代的方式编写简单的iPhone(或iTouch)应用,然后列举了一个计算器应用的示例,通过它可使用iPhone进行简单的分数算术运算。
因为面向对象的用语涉及大量术语,所以附录A提供了一些常用术语的定义。
附录B对Objective-C语言进行了总结,它用于快速参考。
附录C给出了本书第二部分开发并大量使用的两个类的源代码。这些类定义了地址卡和地址簿类。使用方法可以执行简单的操作,如在地址簿中添加和删除地址卡、查找某人、列出地址簿的内容等。
学会如何编写Objective-C程序后,可以继续向几个不同的方向发展。你可能想学习有关C语言的更多内容,或开始编写在Mac OS X上运行的Cocoa程序,或者是开发更复杂的iPhone应用。不管是哪种情况,附录D都能引导你向正确的方向迈进。