很少有人會想到 Objective-C 歷史悠久,並且它實際上影響了很多其他的編程技術。比如, Java 編程語言和 Objective-C 就有很多共同點。原因就是在 Objective-C 的早期,NeXT 和 Sun Microsystems 合作開發 OpenStep 平台,他們用來開發這種技術的語言就是 Objective-C。當 NeXT 計算機的表現沒有達到他們預期的要求時,該公司走向了失敗,Sun 決定開發自己的語言和跨平 台開發包——Java。Java 工程師們都是諳熟 Objective-C 的,因為 Objective-C 是他們在使用 Java 之前首選的語言。后來他們就將 Objective-C 的一些較好的功能引入到了他們所開發的語言中。
Objective-C 現已成為了 Mac OS X 和 iPhone OS 上首選的開發語言。它已經發展成為了一種優 雅的解決方案,在純靜態語言和純動態語言之間實現了平衡。它是少有的幾種通常進行編譯的語言, 不僅能從類似 C 和 C++的編譯時語法檢查受益,還能從負責處理動態對象類型的動態運行時受益。除了 Mac OS X 和 iPhone OS,Objective-C 在其他平台上也發展了一批追隨者,可以在 Linux、 Windows 和其他支持 GNU 編譯器的平台上開發應用。在 iPhone OS 上的使用增加了該語言的知名度並吸引了很多新的程序員。可以說 Objective-C 如今正在經歷一次復興——成千上萬的開發 者正涌向該語言,使其成為了最熱門的技術之一。
使用Xcode
Xcode 是一個加入蘋果開發者計划就可以免費獲得的優秀的 IDE。它默認支持 C、Objective-C、C++、Java 以及其他幾種語言 。
● OC語言特點:
1、Objecive-C屬於Smalltalk學派,其面向對象與C++面向對象編程力的Simula 67(一種早期面向對象語言)學派不同;
2、Objective-C 是ANSI C的超集,擴展了C 語言使它具備面向對象設計的能力,例如類、消息‘繼承;同時在Objective-C的代碼中可以有C和C++語句,它可以調用C的函數,也可以通過C++對象訪問方法;
3、Objective-C可以實現底層系統編程,另一方面可以支持利用動態架構進行開發。
C++與OC同為面向對象設計語言,他們有很多相似的對象,但是由於兩者屬於不同的面向對象學派。因此兩者之間的比較也樂此不疲。下面簡要說說他們的區別:
1、繼承:Objective-C與同Java和Smalltalk一樣不支持多重繼承,而C++語言支持多重繼承(從側面可以說明多重繼承的效率不高);
2、函數調用:Objective-C通過互相傳遞消息實現函數調用,而C++直接進行函數調用
3、定型:Objective-C是動態定型(dynamicaly typed)。所以它的類庫比C++要容易操作。Objective-C 在運行時可以允許根據字符串名字來訪問方法和類,還可以動態連接和添加類。而C++,對象的靜態類型決定你是否可以發送消息給它。
4、接口:Objective-C采用protocol協議(非正式和正式)的形式來定義接口,而C++采用虛函數的形式來定義接口。
5、方法重載:c++中允許兩個方法的名字相同,參數個數相同,但是參數類型不同,以及不同的返回值類型。而OC中不允許同一個類中兩個方法有相同的名字,參數個數相同,參數類型不同。