標(biāo)題:
Programming in Objective-C
[打印本頁]
作者:
xueren
時間:
2013-8-16 12:48
標(biāo)題:
Programming in Objective-C
今年沒有看著什么新的有點思想的東西,雖然前不久買了兩三本關(guān)于實時系統(tǒng)的和FPGA的,可是都忙著工作,都沒怎么看著,當(dāng)然,這些也都是些application(應(yīng)用)的了,并不是一些basic(基礎(chǔ))型的。呵,經(jīng)常去圖書館借離散數(shù)學(xué)和偏導(dǎo)回來,可是翻都沒翻又還回去,而且是過期先,真是暈死。不知為什么現(xiàn)在的心都不如幾年前了,那時雖然也是如饑視渴,但是還是可以一步步地慢慢從基礎(chǔ)開始,現(xiàn)在可不行了,總靜不下心來學(xué)些基礎(chǔ)的……(費(fèi)話還有很多很多)
言改正傳。前不久,不知算不算心血來潮,突然就想玩玩apply(蘋果),于是想到了買機(jī)器,裝MAC OS X(蘋果的操作系統(tǒng)),載XCode(Mac OS X下的一個開發(fā)平臺),下文檔等等之類。當(dāng)然,想了就做了(廣告語:Just do it)。呵,運(yùn)氣不好,在淘寶找了兩個商家,一個說我不懂裝懂直接不賣我,另一個說著傳機(jī)器的照片過來的,結(jié)果照片沒過來機(jī)器賣別人了。也罷,本想再買個小白來陪一下現(xiàn)在這臺小黑的,沒辦法,他們都逼我省錢。只好在現(xiàn)在的小黑上裝上小白的心--Mac OS X and XCode, etc.
文檔下了一大堆,從Mac OS X的核darwin到上層的Cocoa等等。今天花了半天學(xué)會了基本的Objective-C。好久沒有看過english document(英文文檔)了,有些困難,不過還好,幾乎都只是看看文檔里的代碼就都差不多明白了,哈,一目十行不在話下。
說說對Objective-C的一點點感覺吧。幾年來我神游過很多種計算機(jī)編程語言,我覺得最好玩和最深奧的還是函數(shù)式的,像Lisp和Scheme,到現(xiàn)在我還沒得到其精髓所在;而最常用的就是C語言了,從最底層的bootloader到OS,到驅(qū)動再到應(yīng)用層,從單片機(jī),到PC再到大型機(jī),它都可以上任,而且做得很好;最實用的就是shell,如果shell也算一種語言的話。編程語言現(xiàn)在最流行的是什么?OO(面向?qū)ο螅!不管是新興的python, php, java, c#,就連有點古老的pascal都加上了OO的支持,也就是delphi吧。如果你現(xiàn)在去書店里轉(zhuǎn)轉(zhuǎn)就會發(fā)現(xiàn)編程方面的書都幾乎被java和c#的書給占完了,而幾年前我出道的時候最流行的還是C++,不管網(wǎng)上還是網(wǎng)下,到處都是學(xué)習(xí)C++,論OO。C++學(xué)了幾年了,精算不上了,但是還算上熟悉吧。其實,不管是哪種語言,都脫離不了計算機(jī)這個不變的東西,如果你能達(dá)到和計算機(jī)一樣的思維再加上這些語言的思想那就是難達(dá)到真正地運(yùn)用自如了。(呵,計算機(jī)這個東西我覺得我已經(jīng)理解得差不多了)
哎呀呀,又扯得遠(yuǎn)了些,怪不得以前語文老師不是說我的作文寫得好就是寫得又臭又長的- -b
那天用XCode(就像M$的VS,Borland的delphi和BCB)生成了個程序,呵,看到objc(Objective-C的簡稱)代碼中一大堆方括號[],還真是給看暈了。心想怎么這么麻煩的,比起c++, java, c#來太不藝術(shù)了。可是,今年終于明白了很多。其實objc在OO方面是從OO的鼻祖smalltalk給直接繼承過來的(以前雖然也去研究了一下smalltalk,可是沒入門就又出來了),它還是沿用著message(消息傳遞)的方式進(jìn)行OO處理,而不像現(xiàn)在流行的c++, java, c#使用function call(函數(shù)調(diào)用)方式進(jìn)行。舉個例子:
object.function(argument); // function call
[object method: message]; // message
還有,學(xué)過C++的都應(yīng)該知道,C++是可以多重繼承的,可是objc和java一樣,只能單一繼承。
當(dāng)然還有其它很多地方,現(xiàn)在還沒深入。
呵,不知是不是被C++, java, C#思想的毒害,總感覺objc的語法不優(yōu)雅不夠藝術(shù),寫得太復(fù)雜,也許這也是其不如前者流行的原因吧。但是,這種OO的思想真的是原汁原味的。
再多說一下,其實,objc與cocoa的關(guān)系就只是一種語言與一個庫的關(guān)系,就像C++與MFC,C#與.NET,JAVA與swing一樣。
附:
1,wikipedia中關(guān)于objective-c的詳細(xì)介紹:
http://en.wikipedia.org/wiki/Objective-C
2,Introduction to The Objective-C 2.0 Programming Language:
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html
3,F(xiàn)oundation Framework Reference:
http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/index.html
4,Introduction to Cocoa Fundamentals Guide:
http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/chapter_1_section_1.html
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1