簡介 - Introduction

2018-08-12 21:19 更新

關于 Objective-C

Objective-C 是你在為 OS X 和 IOS 系統(tǒng)編寫應用程序時使用的主要編程語言。它是C語言的超集并具備面對對象的能力和動態(tài)運行的特性。 Objective-C 繼承了 C 語言的語法,基本類型和控制流語句并且添加了定義類和方法的語法。并且 Objective-C 語言在提供了動態(tài)類型和延遲到運行時的綁定的同時,為對象圖形管理和對象字面提供了語言層面上的支持。

概覽

本文介紹了 Objective-C 語言并且就其使用提供了廣泛的例子。你將會學習到如何創(chuàng)造你自己描述自定義對象的類別以及如何使用由 Cocoa 和 Cocoa Touch 所提供的框架類。盡管框架類是與語言本身所分開的,但是他們的使用與處理和 Objective-C 語言緊密相關,并且許多其他語言層面的特點依靠這些類別所提供的行為。

一個應用程序由一個網絡對象創(chuàng)建

在為 OS X 或者 IOS 系統(tǒng)創(chuàng)建應用程序時,你會將大把時間花費在使用對象上。那些對象是 Objective-C 類的實體。其中的一些是由 Cocoa 或者 Cocoa Touch 提供的而其他的一些是由你自己編寫的。

如果你在編寫你自己的類,開始的時候先提供一個對于類的描述,要細化預期的公開接口到類的實體。這個公共接口的公共特性就是來封裝相關數據以及一系列的方法。方法聲明表明一個對象可以接受到的信息,也包括任何時候方法被調用時所需要的參數的信息。你也會提供一個類的實現(xiàn),包括實現(xiàn)在接口聲明的每一個方法的代碼。

相關章節(jié):類別定義對象使用,數據封存

類的繼承

去定義一個類在已有類上增加自定義行為,而不是創(chuàng)造一個全新的類來提供微小的附加能力。你可以用一個類為任何類添加方法,包括那些你沒有初始實現(xiàn)源代碼的類,比如框架類 NSString 。

如果你的確有初始源代碼,你可以使用一個類的繼承來增加新的特性,或者修飾已有特性的屬性。類擴展被廣泛用于隱藏私人行為在一個單個源代碼文件中使用,或者在一個自定義框架的私有實現(xiàn)中使用。

相關章節(jié): 現(xiàn)有類的定制

協(xié)議定義消息規(guī)范

在 Objective-C 的應用程序中大部分的工作是由對象之間互相傳遞信息形成的。通常,這些信息是由在一個類接口中明確聲明的方法來定義的。然而某些時候定義非直接相關一個特定類的一系列方法是有用處的。

Objective-C 使用協(xié)議來定義一組相關方法,例如一個對象請求代理的方法,是可選還是需要的。任何類可以表明它采用了協(xié)議,也就是說它必須提供所需要的所有方法的實現(xiàn)。

相關章節(jié):使用協(xié)議

值和集合通常作為 Objective-C 的對象

在 Objective-C 中使用 Cocoa 和 Cocoa Touch 類來聲明值是很常見的。 NSString 類用于字符串的字符,NSNumber 類用于不同類型的數字,例如整數或浮點數, NSValue 類用于等其他值,例如 C 中的結構。你也可以使用任何由 C 語言定義的初始類型,例如 int , float 或者 char 。

集合經常代表某一集合類的實體,例如 NSArray , NSSet, 或者 NSDictionary ,這其中的每一個都被用于集合其他 Objective-C 對象。

相關章節(jié):值和集合

Blocks 簡化常規(guī)任務

Blocks 是引進到 C ,Objective-C 和 C++ 語言的一種語言功能,來代表工作的一個單元;它們把一塊代碼以捕獲的狀態(tài)封鎖,這就使它們在其他程序語言中類似于關閉狀態(tài)。Blocks常常被用于簡化常規(guī)任務,例如集合枚舉,分類和測試。同樣它們使用多線程優(yōu)化技術(GCD)也使得并發(fā)或異步執(zhí)行規(guī)劃任務更加簡單。

相關章節(jié):使用Blocks

錯誤對象在運行時錯誤問題中的使用

盡管 Objective-C 包括異常處理的語法,僅在程序錯誤(如界外數組訪問)時使用的 Cocoa 和 Cocoa Touch 出現(xiàn)異常,這些都需要在一個應用程序運行前確定。

盡管其他的錯誤—包括運行時錯誤,例如硬盤空間不足或者網絡功能不可用,都由 NSError 類來體現(xiàn)。你的應用程序要為錯誤做好計劃并且確定如何做到最佳處理,以達到在問題出現(xiàn)時提供盡可能最佳的用戶體驗。

相關章節(jié):錯誤處理

Objective-C 代碼遵守已有的規(guī)則

寫 Objective-C 代碼的時候,你應該記住大量已有的代碼規(guī)則。例如,方法名稱以小寫字母開始,用大小寫混合的方式來區(qū)分多個單詞,就像 doSomething 或者 doSomethingElse 而且,重要的不僅僅是要關注大寫,你還應該確定你的代碼盡可能的能被讀懂。也就是說,方法名稱要能夠傳詞達意,而不是特別冗長。 除此以外,如果你想利用語言或者結構特征,你還需要注意一些規(guī)則。例如,屬性訪問方法必須嚴格遵守命名規(guī)則,以便能夠和 Key-Value Coding(KVC) 或者 Key-Value Observing (KVO)這些技術共同使用。

相關章節(jié):規(guī)則

先決條件

如果你對 OS X 或者 iOS 的發(fā)展還不熟悉,你可以在讀這分文檔前閱讀 Start Developing Mac Apps Today 或者 Start Developing Mac Apps Today,以便對 iOS 和 OS X 的應用發(fā)展過程有一個大概的了解。除此以外,在繼續(xù)這篇文檔大部分章節(jié)后面的練習前,先熟悉 Xcode 。 Xcode 是一種用來給 iOS 和 OS X 建立應用程序的集成開發(fā)環(huán)境。你將用它編寫代碼,設計應用程序的用戶界面,測試你的應用軟件,以及調試任何問題。 雖然有一些與 C 語言或者基于 C 語言的一種語言會更好,比如:Java 或者 C# ,這份文檔包括基本 C 語言特征的內聯(lián)例子,比如:流控制聲明。如果你還掌握其他更高級的程序語言,比如 Ruby 或者 Python,你應該能夠理解這些內容。 合理的通用性被用于一般面向對象編程原則,尤其是當它們用于 Objective-C 環(huán)境中。但是它假定你至少有與基本面向對象概念最小的相似點。如果你不熟悉這些概念,你應該讀讀 Concepts in Objective-C Programming 中的相關章節(jié)。

相關文獻

這份文檔中的內容使用 Xcode 4.4 以及更高版本,并且假定你的目標是 OS X v10.7 及更高版本,或者 iOS 5 及更高版本。更多有關Xcode的信息,請關注 Xcode Overview 。有關語言特征可利用性,請關注 Objective-C Feature Availability Index

Objective-C 應用程序使用引用計數來決定對象的使用壽命。大多情況下,編譯程序的自動引用計數特征會為你注意這個問題。如果你不能利用 ARC ,或者需要轉換或保留手動管理對象記憶的遺留代碼,你應該閱讀 Advanced Memory Management Programming Guide。

除了編譯程序,Objective-C 語言使用一種 runtime system 來保證它的動態(tài)和面向對象特征。雖然你通常不需要擔心 Objective-C 怎樣“工作”,直接和這種 runtime system 互動是可以實現(xiàn)的。就像 Objective-C Runtime Programming GuideObjective-C Runtime Reference 里描述的一樣。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號