Objective-C语言被设计成一种精致的,面向对象的,用法简单的计算机语言。它是完全基于标准C语言,并且做了最小的,但是功能强大的扩展的语言。这个扩展语言借鉴了是早期的能支持面向对象的语言Smalltalk的风格。Objective-C使用一种简单易懂的方式使得C语言能够完全支持面向对象。
大部分面向对象的开发都保护下面几个部分:
-
一个面向对象的语言
-
一个类库
-
一系列的开发工具
-
一个运行期环境
本文档描述了开发环境的第一部分--程序语言。同时对第二部--类库--提供简单描述,Objective-C提供了编程框架--即Cocoa。关于运行期是被描述在一个单独的文档中--Objective-C Runtime Programming Guide.
谁应该读本文档
本文档的预期读者会对如下内容感兴趣:
-
Objective-C编程
-
Cocoa应用库的基本信息
本文档不只是介绍Objective-C的面向对象特性,而是全面介绍这个语言本身。当然,只是专注于对C的扩展部分,而不保护C语言本身。
由于不是描述C语言的文档,所以这里要求读者需要一定的C语言基础。由于面向对象是和C语言的面向过程非常不同,所以即使你不是C语言的专家,也不会妨碍你对本文档的理解的。
本文档的组织结构
下面的章节覆盖了所以对C语言的扩展。
文章的最后有一个所有Objective-C语言和面向对象名词的解释汇总。
约定
本文档使用浅体字和粗体字表示不同的部分。前体表示这个部分必须使用这样的字符,不能有所有变化,粗体表示是可以自己定义的。比如,下面的代码:
@interface
ClassName (
CategoryName )
表示@interface
和其他的两个部分是必须的,但是你可以选择类名和类别名。
在例子代码中,省略号表示这有一些代码,但是没有显示出来:
- (void)encodeWithCoder:(NSCoder *)coder |
{ |
[super encodeWithCoder:coder]; |
... |
} |
参看
如果你从来没有面向对象编程经验,请先看文章Object-Oriented Programming with Objective-C。如果你有其他语言,比如C++,JAVA等语言的面向对象开发经验,也建议你读一下这个文章,因为Objecctive-C的面向对象的语言支持和其他的语言是不同的。Object-Oriented Programming with Objective-C 为你站在Objective-C开发者的角度来熟悉面向对象编程提供帮助。他提供了面向对象的设计思路,以及如何写真正的面对对象的程序。
运行期系统
Objective-C Runtime Programming Guide 描述了Objective-C的运行期特性,以及你如何用它。
Objective-C Runtime Reference 描述了Objective-C在运行期系统方面提供的结构和函数。你可以使用这些支持和运行期系统进行交互,比如你可以动态增加类,或为类增加函数,或得到加载库中所有的类的列表。
内存管理
Objective-C支持三种方式的内存管理机制:即在自动垃圾回收和内存计数器上的技术:
-
自动内存计数管理 (ARC),编译器负责管理实例的生命周期。
-
手动管理内存计数器 (MRC,有时候称MRR为“手动增加/释放”),程序员负责所有的内存管理工作。
手动管理内存的方式描述在文章Advanced Memory Management Programming Guide中。
-
垃圾回收,系统提供垃圾回收齐来自动管理内存管理和实例生命周期管理。 where you pass responsibility for determining the lifetime of objects to an automatic “collector.”
垃圾回收技术描述在Garbage Collection Programming Guide中。 (本技术不能用在iOS开发中—你也不能通过iOS开发中心看到上面的这个文档)