iphone應用開發第一季:初識iphone應用開發的三大基礎:mac系統介紹、xcode開發環境介紹和cocoa框架介紹。這三大基礎是iphone os應用開發必知必會的內容
◆mac系統介紹
◆xcode開發環境介紹
◆cocoa框架介紹
◆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提供了很多功能,使你無論在建立專案、設計、修改**還是編譯等各個環節都能收益,恐怕你很難找到乙個不使用它的理由。事實上,自從 mac os 10.4引入了universal binary的概念以後,xcode幾乎成為了大多數mac開發者的唯一選擇。不用擔心的是xcode是免費的,只要你有一台mac,隨機帶的安裝盤裡就 有xcode,公升級是免費的(不過如果你用的是mac os 10.5以前版本的os,你將不能執行xcode 3.0或以上的版本)。
相信對於任何乙個開發人員,hello world!都應該是個熟悉無比的東西。那麼,cocoa的hello world!程式您看得懂麼?
import <foundation /foundation.h >
int main (int argc, const char * ar**)
首先,和絕大多數您所見過的c程式一樣,任何乙個cocoa應用程式都有乙個主函式:
int main(int argc, const char * ar**)主函式是應用程式的主入口,也是一切開始和結束的地方。是的,沒錯!從表面上看,這些**和常見的c程式的**沒有什麼區別,而且事實上,它們和c程式的**的的確確沒有什麼區別。
接下來你該問我,那什麼是foundation?foundation.h裡裝的又是什麼?什麼是nsautoreleasepool?那些中括號又是什麼?...... 別急,在後續的幾章裡我們會慢慢把這麼多陌生的面孔熟悉起來,當然我也可以現在就大致的解釋一下:
foundation全稱foundation framework,是cocoa的乙個子開發框架。foundation裡包含了cocoa中最基本的一些類,它們在乙個mac應用程式中通常負責物件 管理、記憶體管理、容器等相關資料結構的操作。foundation.h是foundation的標頭檔案,一旦引入了這個標頭檔案,我們就可以在自己的程式裡 使用任何在foundation裡宣告的類。例如在上述**中,nsautoreleasepool就是foundation中宣告的乙個類,它為應用程 序提供可控制的延遲物件釋放的記憶體管理。至於那些方括號,它們是objective-c裡最最基本的語法成分,一對方括號中間的內容表示對物件(或類)進 行一次方法的呼叫。
如果您沒有聽明白,請不要驚慌失措,咱們在下面的幾章裡慢慢說。另外,cocoa的國際音標是['koukou]希望大家能把這個單詞的音讀對。
在使用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**,那就請放心大膽的繼續吧!
mysql的必知必會 mysql 必知必會 筆記
好久沒有寫了。1 show columns from table 等同於describe table顯示的是表的結構。而select from table 則顯示的是整個表中插入的資料。2 select distinct c1,c2 from table除非列不相同,否則所有行將被檢索出來,即不能對...
mysql必知必會 mysql必知必會(四)
十四 理解子查詢 1 通過子查詢過濾 這本書在所有的章節都關連到了資料庫表,訂單資料是儲存在兩個表中,orders表儲存著 訂單號碼 顧客id和訂單日期。個人的訂單列表關連著orderitems表,訂單表沒有儲存顧客資訊,它只是儲存著顧客id,這實際的顧客資訊是儲存在customers表中。現在假設...
C 必知必會
條款2 多型 2 條款3 設計模式 5 條款4 stl 8 條款5 引用是別名而非指標 10 條款6 陣列形參 13 條款7 常量指標與指向常量的指標 16 條款8 指向指標的指標 19 條款9 新式轉型操作符 21 條款10 常量成員函式的含義 25 條款11 編譯器會在類中放東西 29 條款12...