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開發中心看到上面的這個文檔)