在进行iOS编程时,你实际上是在进行Cocoa编程,因此需要了解Cocoa;你应该知道,在使用Cocoa时到底使用的是什么,以及Cocoa希望你应该怎样使用它们。Cocoa是个庞大的框架,又细分为了多个小框架,熟悉Cocoa需要花费不少时间和精力。不过,Cocoa有一些重要的约定与组件,一开始可以作为指引你的路标。
Cocoa API大部分都是由Objective-C编写的,Cocoa本身所包含的大多数也是Objective-C类,这些类都继承自根类NSObject。在进行iOS编程时,你主要会使用内建的Cocoa类。Objective-C类相当于Swift类,并且也兼容于Swift类,不过Swift的另外两种对象类型(结构体与枚举)在Objective-C中却没有对应之物。Swift中声明的结构体与枚举是无法从Swift桥接到Objective-C的。幸好,一些最为重要的原生Swift对象类型可以桥接到Cocoa类(参见附录A了解关于Objective-C语言以及如何实现Swift与Objective-C通信的更多信息)。
本章将会介绍Cocoa的类结构,探讨Cocoa在概念上是如何根据底层的Objective-C特性进行组织的,然后再来介绍最为常见的一些Cocoa辅助类,最后介绍Cocoa根类及其特性,这些特性会被所有的Cocoa类所继承。