iphone開發學習筆記二 iPhone軟體開發教學課程

用於Mac OS 和 iphone 的開發環境主要是XCode 和 Interface Builder ,在XCode 3.0之前,XCode 和 Interface Builder是兩個相對獨立的應用,一個主要用來編寫代碼,一個主要用來設計用戶界面,從XCode 4.0開始 Interface Builder被集成在XCode中。
再談談用於Mac OS 和 iphone 的開發的開發語言 Objective C,這裡也不想比較Objective C和其它語言C#,Java的優劣點,不同的人有不同的觀點。根據Apple的文檔說 Objective C最大的一個特點是動態性能,Dynamic Message Dispacth, Dynamic Binding等等。
這裡主要給以熟悉C++,Java,C#語言的開發人員一些提醒,Objective C也是一種面向對象的編程語言,但是它和它的堂兄C++很不相同,更大程序上更象C語言。
1. Objective C仍然大量使用指針,而且很多情況下需要手工管理內存。盡管Mac OS上提供瞭 Garbage collector, 但在iphone不支持,即使以後支持Garbage collector,Apple 仍然建議使用手機管理內存,理由是更有效。這一點可能對於以前用Java,C#等具有自動內存管理的人可能不同意,畢竟手動管理內存是一個繁瑣並且容易造成內存泄露。而硬件功能的越來越強大,完全可以彌補自動內存管理帶來的效率問題。
2. Objective C嚴格意義上講沒有Constructor,但習慣上將以init開頭的方法(消息)作為構造函數。dealloc 為析構函數。用於釋放內存(常常用於釋放類變量等)。
3. Objective C 的方法稱為消息,這也是一個Objective C 一個顯著特證,如果你看到一個代碼中有類似
[object message] 的代碼,基本上可以判斷這是一個Objective C代碼。
同樣的代碼在Java 中
int age= person.getAge();
而在Objective C 中
NSInteger age=[person getAge];
如果帶參數,開始更不太習慣Objective C的語法:-)。
4. Objective C 中沒有Namespace 的概念,為避免命名沖突,一般使用前綴,比如 NSString, NS為前綴。可以使用功能或是公司名縮寫作為前綴。
5. 對於代碼的註釋,Objective C 一般還是使用Docxgen來生成代碼的文檔。
6. Cocoa 和 Cocoa Touch 中提供瞭Foundation Framework, AppKit, UIKit 接口等使用瞭Objective C 面向對象的對象接口,但相當一部分API依然是使用C接口,比如Quatz 二維圖形庫。又比如我打算在Objectivc C中找類似Java 庫中 Math類,找瞭好一會兒沒找到,Google 一下,居然還在math.h 和10年前用C 一樣 :-)
最後借用Star trek voyager中一句臺詞“When in Colletive,adapt”,如果要開發iphone應用或是Mac 應用,就要適應Objective C ,時間長瞭就習慣瞭。而且基本上凡是Java中有的面向對象的概念 ,Objective C也支持,隻是以不同的方式來實現的。
Apple的文檔和教程寫得非常好,這也可以彌補一些開發環境上的不便之處。

 

摘自 引路蜂移動軟件

You May Also Like