iPhone應用開發必知必會的三大基礎
我們剛剛給大家介紹過《成為iPhone游戲開發者的十大秘技》,在剛剛要接觸iPhone應用程序開發時,往往都對iPhone應用程序開發無從下手,今天我們就來和大家探討一下iPhone應用開發必知必會三大的基礎。首先,第一節大家都知道應該就是:“HelloWorld”!
◆MAC系統介紹
◆Xcode開發環境介紹
◆Cocoa框架介紹
什么是MAC?
◆MAC系統是蘋果機專用系統,正常情況下在普通pc上無法安裝的操作系統
◆MAC壁紙
蘋果公司不但生產MAC的大部分硬件,連MAC所用的操作系統都是它自行開發的,接下來,我們就來了解一下它的操作系統。
蘋果機現在的操作系統已經到了OS 10,代號為MAC OS X(X為10的羅馬數字寫法),這是MAC電腦誕生15年來最大的變化。新系統非常可靠,它的許多特點和服務都體現了蘋果公司的理念。
另外,現在瘋狂肆虐的電腦病毒幾乎都是針對Windows的,由于MAC的架構與 Windows不同,所以很少受到病毒的襲擊。MAC OS X操作系統界面非常獨特,突出了形象的圖標和人機對話(圖形化的人機對話界面最初來自施樂公司的Palo Alto研究中心,蘋果借鑒了其成果開發了自己的圖形化界面,后來又被微軟的Windows所借鑒并在Windows中廣泛應用)。蘋果公司能夠根據自己的技術標準生產電腦、自主開發相對應的操作系統,可見它的技術和實力非同一般。打個比方,蘋果公司就像是Dell和微軟的聯合體,在軟硬件方面“才貌雙全”。
什么是Xcode?
Xcode是Apple自己開發的,只運行在Mac OS X平臺下的IDE。如果你想真正了解Mac OS X平臺上的開發,就應該了解它。當然,Mac OS X實現了POSIX,固然也支持傳統的UNIX編程環境;Eclipse等Java開發工具也有Mac OS X版。不過這些,你在Linux或者Windows平臺也能體驗到。Xcode也并不神秘,Apple并沒有自己特有的編譯器(盡管Mac上的Gcc是經蘋果修改過的版本),創建項目的時候,Xcode還是會生成并執行一條條的Gcc和ld的命令。所以如果你有足夠的UNIX經驗(并且知道到哪里找需要用的Framework),完全可以在命令行編譯一個完整的Cocoa應用程序。
其實Xcode提供了很多功能,使你無論在創建項目、設計、修改代碼還是編譯等各個環節都能收益,恐怕你很難找到一個不使用它的理由。事實上,自從Mac OS 10.4引入了Universal Binary的概念以后,Xcode幾乎成為了大多數Mac開發者的唯一選擇。不用擔心的是Xcode是免費的,只要你有一臺Mac,隨機帶的安裝盤里就有Xcode,升級是免費的(不過如果你用的是Mac OS 10.5以前版本的OS,你將不能運行Xcode 3.0或以上的版本)。
什么是Cocoa?
Cocoa Framework簡稱Cocoa,它是Mac OS X上的快速應用程序開發(RAD, Rapid Application Development)框架,一個高度面向對象的(Object Oriented)開發框架。無論您是資深的Mac開發人員,還是即將踏入Mac開發世界的新新人類,Cocoa都是您開發應用程序的瑞士軍刀、樂高積木,它是您構建Mac OS X應用程序最強大、最高效的工具。值得一提的是,蘋果公司之所以能夠開發出眾多頂級軟件,其實也正是因為有著Cocoa這個秘密武器。Cocoa是Mac OS X上原生支持的應用程序開發框架,蘋果公司強烈推薦所有Mac開發人員使用。
骨灰話題:Hello World!
相信對于任何一個開發人員,Hello World!都應該是個熟悉無比的東西。那么,Cocoa的Hello World!程序您看得懂么?
- import <Foundation/Foundation.h>
- int main (int argc, const char * argv[]) {
- NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
- NSLog(@"Hello, World!");
- [pool drain];
- return 0;
- }
首先,和絕大多數您所見過的C程序一樣,任何一個Cocoa應用程序都有一個主函數:
- int main(int argc, const char * argv[])
主函數是應用程序的主入口,也是一切開始和結束的地方。是的,沒錯!從表面上看,這些代碼和常見的C程序的代碼沒有什么區別,而且事實上,它們和C程序的代碼的的確確沒有什么區別。
接下來你該問我,那什么是Foundation?Foundation.h里裝的又是什么?什么是NSAutoreleasePool?那些中括號又是什么?...... 別急,在后續的幾章里我們會慢慢把這么多陌生的面孔熟悉起來,當然我也可以現在就大致的解釋一下:
Foundation全稱Foundation Framework,是Cocoa的一個子開發框架。Foundation里包含了Cocoa中最基本的一些類,它們在一個Mac應用程序中通常負責對象管理、內存管理、容器等相關數據結構的操作。Foundation.h是Foundation的頭文件,一旦引入了這個頭文件,我們就可以在自己的程序里使用任何在Foundation里聲明的類。例如在上述代碼中,NSAutoreleasePool就是Foundation中聲明的一個類,它為應用程序提供可控制的延遲對象釋放的內存管理。至于那些方括號,它們是Objective-C里最最基本的語法成分,一對方括號中間的內容表示對對象(或類)進行一次方法的調用。
如果您沒有聽明白,請不要驚慌失措,咱們在下面的幾章里慢慢說。另外,Cocoa的國際音標是['koukou]希望大家能把這個單詞的音讀對。
Objective-C其實很C
在使用Cocoa進行應用程序開發的時候,Objective-C是我們首選的語言。(當然,Cocoa也通過官方、第三方等途徑,構建了 Cocoa-Ruby、Cocoa-Python等編程語言上的橋接,使無論是來自Ruby還是Python世界的開發人員能夠使用他們熟悉的語言快速上手。)不過在這里,我們還是要首推Objective-C作為一個Cocoa程序的開發語言,原因有二:
其一、Objective-C實際上是C的超集。
Objective-C的運行環境庫(Runtime Library)完全是由C編寫的,因此任何一個Objective-C消息派發(Message Dispatching),都會被替換成Objective-C運行環境中的某個或某幾個C函數的調用。這種機制為Objective-C帶來了高效的消息派發和對C代碼完全原生的兼容。
其二、整個Cocoa Framework都是由Objective-C/C實現的。
因此在開發一個Cocoa應用程序的時候,Objective-C是我們不二的選擇。
當我們說到“Objective-C”的時候,盡管編程模型和C不同,盡管語法看似有些奇怪,但事實我們所討論的依然還是C語言。因為Objective-C確實是C,說的簡單些:
Objective-C就是擁有一個面向對象層(Object Oriented Layer)的C。而Objective-C正是通過從Smalltalk進化而來的這種語法,實現了對這個面向對象層的支持。因此如果您正在使用 Objective-C開發一個Cocoa應用程序,同時又希望在某些代碼的某些位置插入一些C代碼,那就請放心大膽的繼續吧!
51CTO推薦專題:
Phone Club——51CTO移動開發線下技術沙龍
本期主題:Android應用開發技術進階
地點:創新工場 北京市海淀區北四環西路66號第三極大廈B座18層
演講講師:王明禮(創新工場) 范懷宇(網易)
【編輯推薦】