#文檔名:用 Objective-C 編程,

來源:互聯網
上載者:User

#文檔名:用 Objective-C 編程,

#文檔名:用 Objective-C 編程

##關於Objective-C(簡稱OC)

給iOS和OS X寫程式的時候,Objective-C是程式員使用的主要語言。OC是C語言的一個擴充集,提供了物件導向的特性和一個動態運行時。
OC的文法,基本類型,控制流程語句也都是從C語言繼承而來,並且還加入了定義類和方法的文法。OC也添加了語言層級的對象圖形管理和對
象標示符支援,來提供動態分型和動態綁定,把很多事情延遲到運行時。

###內容驚鴻一瞥

本文檔介紹了OC語言和一些擴充的例子。學習怎麼建立自定的類來描述對象,如何使用Cocoa和Cocoa Touch提供的架構類。雖說架構時獨立
與語言存在的,但是很多的特性和架構類密不可分。

###一個App是用對象的網路構建起來的

寫iOS和OS X的App,主要就是和對象打交道。對象是OC類的執行個體,有Cocoa提供的類,也有自己定義的類。

如果你要開始建立自己的類,就開始從描述那個類下手,自習想想這個類的執行個體對象的公用介面是什麼樣子的。這個介面包括了封裝了相關
資料的共用屬性,還有一系列方法。方法的聲明顯示的是對象可以接受的訊息,在任何時候被調用的時候方法可以接受的參數資訊。自定類
中還要包括一個實現,視線中包括了之前在介面中聲明的所有方法的可執行代碼。

###用“分類”來擴充現有的類
為了給現有的類增加一點小功能,犯不上建立一個全新的類,可以通過定義一個“分類”來給現有的類增加自定的行為。使用分類可以給任
何類增添方法,即使是架構裡面的那些你沒有原始碼的類,比如NSString。

如果你擁有現有類的原始碼,可以使用一個類擴充來增加新的屬性,或者說修改現有的屬性。類擴充經常用來吧一個私人行為隱藏在單個源
檔案或者一個自定的架構實現中。

###“協議”定義訊息規範
OC程式裡最常發生的操作其實是對象之間互相發訊息。一般來說,這些訊息是通過方法的形式顯式地定義在類的介面中。但是有時候,一組
相關的類是不一定是直接綁定在某個特定的類上的。

OC使用協議來定義一組相關的方法,比如那些對象會在委託中調用的方法,可以設定成必須實現也可以設定成可選實現。任何類都可以選擇
實現一個協議,也就是說,這個類必須要實現協議中定義的必須實現的方法。

###值類和集合類常被封裝成OC對象
一般OC會用Cocoa中的類來表示值類。NSString類用來表示字串,NSNumber類用來封裝整型或浮點型數字,NSValue類則用來封裝其他的類
型,比如C語言的結構體。你也可以使用C語言中的基本類型,比如int,float,或者char。

集合類會封裝成Cocoa集合類的執行個體來使用,比如NSArray數組,NSSet集合,或者NSDictionary字典,都可以用來作為OC對象的集合。

###“代碼塊”簡化一般任務

代碼塊是C,OC,C++都已經引入的語言特性,用來代表一個工作單元;代碼塊會用一對花括弧封裝一塊代碼,看上去很像其他語言裡的閉包
。代碼塊經常用來簡化一般的任務操作,比如集合類中的枚舉,排序,測試操作。代碼塊也可以使得使用GCD技術的並發或者非同步多任務
操作變得更簡單。

###用在運行時問題的Error對象

雖然OC包含了異常處理的文法,但是Cocoa只會在出現編譯時間錯誤的時候使用異常(比如數組訪問越界),這些問題在App發布之前就應該修
正。

所有其他的錯誤,執行階段錯誤,比如磁碟空間溢出或者網路服務故障,都被封裝成NSError類的執行個體。你的程式應該有所準備並且做出處理
,來確保良好的使用者體驗。

###OC代碼要遵循現有的代碼規範

寫OC代碼,應該時刻記住幾條代碼規範。方法名應該小寫字母開頭,之後用駝峰命名,蔽日doSomething和doSomethingElse。這不是說大寫
字母有多重要,而是要確保你的代碼具有一定的可讀性,方法的名稱應該具有意義,但是也不要太過冗長。

另外,有一些規則在使用架構或者語言特性的時候是必須遵守的。比如屬性訪問器方法必須遵守嚴格的命名規範以配合比如KVC和KVO這些技
術。

##前置知識

如果你是開發新手,在學習這份文檔之前,先去看看Start Developing iOS Apps Today文檔,對iOS程式開發有一個通盤的瞭解。另外你還
要比較熟悉Xcode的基本用法,Xcode是開發程式的IDE工具;用Xcode來寫代碼,設計介面,測試應用,偵錯工具等等。

在語言上,有一些C語言基礎或者基於C語言的系列語言的知識是不錯的,本文檔中確實包含了一些C語言的流程式控制制語句的範例程式碼。如果
你有其他的進階語言的經驗,比如ruby或者Python,那也是可以的,接著往下吧。

另一個基本的前置知識是物件導向的一些基本概念,以及一些一般的物件導向的基本原則。要是完全沒概念,推薦先去看相關章節 OC編程
概念。

OC使用ARC來管理對象的生命週期,ARC會管好這些事情,但是要是你沒辦法使用ARC,就需要自己關心好這些記憶體管理的事情,你應該看看
Advanced Memory Management Programming Guide文檔。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.