Object-C 介绍
介紹
Object-C 是一個為蘋果IOS 和OS X系統(tǒng)編寫程序的語言。它能夠編譯和構(gòu)建命令行功能、GUI、領域框架的通用語言。他也提供了很多的功能幫助維護復雜的應用。
像C++一樣,Object-C也是在C語言的基礎上添加了面向?qū)ο蟮奶匦?#xff0c;但是兩種語言完成這個目標,采用了明顯不同的基礎哲學。Object-C明顯更加的偏向動態(tài)語言,推遲它的決定到運行時,而不是編譯時。這個表現(xiàn)在IOS 和 OS X開發(fā)的設計模式。
Objective-C 冗長的命名規(guī)約大家周所周知。導致的結(jié)果是:最終的代碼很具有描述性,所以幾乎不可能導致誤解或者錯用。比如是相同功能的代碼片段用C++和Object-C分別表示結(jié)果:
// C++ john->drive("Corvette", "Mary's House") // Objective-C [john driveCar:@"Corvette" toDestination:@"Mary's House"]正如您所看到的,用Object-C語言編寫的閱讀起來更像是自然語言,而C++更像是機器語言。如果您習慣了Object-C的語法,學習一個新的工程或者學習第三方的代碼是很容易的。
如果您對這種方括號的語法規(guī)則還是不適應,不要擔心。閱讀完本教程您將會熟悉他們。
Frameworks
像其他的語言一樣,Object-C語言包括一個相當簡單的語法規(guī)則和一個標準的開發(fā)包(SDK)。
本教程主要關(guān)注語言本身。但是教程將幫助大家了解一些框架,這些框架或者工具是我們通常能用到的。
有一些標準包不在我們本教程討論的范圍,但是Apple’s Cocoa and Cocoa Touch 框架是當前最流行的。他們分別為OS X 應用開發(fā)和IOS應用的開發(fā)定義了各自的api。下面表格中列出了在Cocoa and Cocoa Touch中的框架。想獲取更加詳細的信息,請參考Mac 技術(shù)概述和IOS 技術(shù)概述。
| Foundation | Defines core object-oriented data types like strings, arrays, dictionaries, etc. We’ll explore the essential aspects of this framework in the Data Types module. |
| UIKit | Provides dozens of classes for creating and controlling the user interface on iOS devices. |
| AppKit | Same as UIKit, but for OS X devices. |
| CoreData | Provides a convenient API for managing object relationships, supporting undo/redo functionality, and interacting with persistent storage. |
| MediaPlayer | Defines a high-level API for playing music, presenting videos, and accessing the user’s iTunes library. |
| AVFoundation | Provides lower-level support for playing, recording, and integrating audio/video into custom applications. |
| QuartzCore | Contains two sub-frameworks for manipulating images. The CoreAnimation framework lets you animate UI components, and CoreImage provides image and video processing capabilities (e.g., filters). |
| CoreGraphics | Provides low-level 2D drawing support. Handles path-based drawing, transformations, image creation, etc. |
當您熟悉Object-C之后,有一些能幫助您構(gòu)架IOS和 OS X應用的工具。再次強調(diào),教程不是一個完整的app開發(fā)的教程,也就是說不教您學習上面的框架。除了Foundation 框架,您將不會學習其他的框架。
如果您對Mac應用開發(fā)感興趣,您可以參考Ry’s Cocoa 教程,當然您必須先對Object-C有扎實的掌握。教程教您怎樣構(gòu)建一個OS X應用使用相同的方法,像本教程一樣。
Xcode
Xcode是蘋果公司為開發(fā)Mac 、iPhone和iPad應用而開發(fā)的集成開發(fā)環(huán)境(IDE).它不僅報錯源代碼編輯器,而且包括界面設計工具( interface builder),設備模擬器、綜合測試和調(diào)試工具、上一節(jié)提到的框架以及開發(fā)app所需要的其他的內(nèi)容。
當然也有其他的方法可以編譯Object-C代碼,但是Xcode肯定是最容易學習的。我建議您現(xiàn)在就安裝Xcode,這樣您就可以跟著學習本教程后面的例子。Xcode可以從Mac App Store 免費獲取。
Creating an Application 創(chuàng)建一個應用
Xcode 為我們提供了 iOS and OS X 應用的各種模板。所有多可以通過導航:File > New > Project…或者Cmd+Shift+N快捷鍵找到。我們將打開一個對話框,詢問您選擇模板。
對于本教程,我們將選擇Command Line Tool模板,通過OS X > Application能找到,在截圖中是高亮的。這樣使我們省去了設置iOS/OS X 的特殊的內(nèi)容,而是關(guān)注Object-C本身。接著往下走,創(chuàng)建一個Command Line Tool的工程。這樣打開另一個對話框,要求您配置工程信息。
您可以填寫任何您喜歡的Product Name 和Organization Name;對于Company Identifier使用 edu.self,這是一個標準的個人是用的標示。對于上線的app,如果您注冊為一個Apple 開發(fā)者,您將可以從Apple獲取公司標示。
本教程將使用一些類,他們是定義在Foundation框架中的。所以您需要確定Type 字段,選擇是Foundation。最后,Use Automatic Reference Counting 復選框通常是被選擇的。
點擊Next,提示你選擇一個工程存儲的位置,這樣您應該就有了一個可以使用的Xcode工程。在Xcode的左邊,您應該可以看到有一個main.m的文件?,F(xiàn)在,這個文件包括你工程的所有。注意以.m為擴張名的文件,通常被作為Object-C的源代碼文件。
為了編譯工程,可以點擊在左上角的Run按鈕或者使用Cmd+R快捷鍵。這是您應該能在Xcode的Output 面板中看到輸出:Hello, World!
The main() Function
#import <Foundation/Foundation.h>int main(int argc, const char * argv[]) {@autoreleasepool {// insert code here...NSLog(@"Hello, World!");}return 0; }在 @autoreleasepool塊中您可以編寫代碼、實驗本教程的代碼片段。上面的main()調(diào)用了定義在Foundation 框架中的函數(shù)。這是Object-C通用工具,為了輸出消息到控制臺。您也注意到了,Object-C中的字符串之前有@前綴。
在整個教程中,您將通過編輯上面您看到的main.m中的內(nèi)容,觀察語言的特性工作原理,但是在真正的開發(fā)中,您幾乎不可能修改模板提供的main函數(shù)內(nèi)容。對于大多數(shù)應用,main()只有一個功能,就是將控制權(quán)交給“application delegate”。比如,Mac app 工程的默認main函數(shù)如下:
#import <Cocoa/Cocoa.h>int main(int argc, const char * argv[]) {return NSApplicationMain(argc, argv); }但是,我們將一直使用command line tools類型的工程,所以上面的例子已經(jīng)超出了教程的范圍。然而Application delegates 是OS X 和 IOS 應用的一部分。Ry’s Cocoa教程的前幾章將詳細的講述。
準備好!
接下來的兩章將學習C語言語法。之后,我們將學習類、方法、協(xié)議和其他面向?qū)ο髢?nèi)容。本教程是由大量的可以實踐的例子組成的。我們建議您,粘貼這些例子的代碼,在您剛才創(chuàng)建的工程中,提供一些參數(shù),觀察會發(fā)生什么。
總結(jié)
以上是生活随笔為你收集整理的Object-C 介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hive 窗口函数的使用
- 下一篇: 如何阅读PBRT3?