畢業了一陣子,最近開始新的工作,這份工作是開發iPhone相關軟體。雖然我沒有碰過Objective C、沒碰過iPhone SDK、也沒碰過Interface Builder,但是我還是一頭栽了進來。
Survey了三天,也有了一些初步的心得。首先,iPhone的開發架構是所謂的MVC架構,也就是Model、View、Controller,因此在開發中,每當建立一個View(使用者介面,副檔名為.xib),就必定會有一個配套的Controller,一個Controller包含副檔名為.h和.m的兩個檔案。.h就像是C++語言中的header file,.m則是.cpp file。
Controller用來控制使用者介面的實際行動,像是頁面的切換、事件的觸發等等。View則是單純用來設計軟體的介面與佈局(layout)。
基本上,在Mac上開發所使用的Xcode+Interface Builder還是比不上微軟的開發環境Visual Studio,這讓我這個習慣微軟開發環境好逸惡勞的傢伙有點不太適應。因為Visual Studio幫程式設計師處理好了很多事情,很多背後的機制Visual Studio都會自動產生對應的程式碼,但因此我們(程式設計師)也可能會忽略很多細節,只能說在Visual Studio上開發是件幸福的事。
在開發iPhone的時候,比較要注意的是在View裡面的UI與在Controller裡面的變數,這兩者之間的對應關係必須自己在Interface Builder用連連看的方式做連結。你在View裡面拉了一個Label,為了可以在程式裡面控制這個Label,就必須在Controller中宣告
UILabel *lbl;為了讓Interface Builder可以知道有這個變數存在你還需要設定:
@Property (nonatomic,retain) IBOutlet UILabel *lbl; @Synthesize lbl;
完成後你可以在Interface Builder看到這個變數(記得要先設置這個View對應的Class,也就是Controller)
接著就是連連看了囉~
在lbl旁邊有個空心小圓點,看到了嗎?在上面按下滑鼠右鍵往外拖曳,就會出現包含藍色小箭頭的線,將箭頭拖曳到對應的使用者介面(UI),變數與使用者介面的關係就會成功建立囉。
以上是建立View和Controller的對應關係。
目前還沒看到資料庫(model)的部份,事實上資料庫的部份是今天的進度。過幾天在跟各位報告:)