歡迎大家踏上APP開發之路!當你選擇要開始開發原生*iPhone/iPad應用程式之後的第一課,就是學習Objective-C程式語言。
原生:Native,在這裡指的是實際安裝到手機的應用程式,而iPhone/iPad應用程式的官方開發方式,是使用Xcode撰寫Objective-C程式語言。
學習程式語言最好的方式,便是實作!透過一個一個的範例練習,並且設定自己想要製作的專題,慢慢地從範例中,找到自己要完成的專題的元件,進而組合、修改,達成目標!
不過目前我們離這個目標還很遙遠,先從所有程式語言的第一個範例,Hello World開始吧!
打開你的Xcode,建立一個新的專案
選擇OS X,Application,Command Line Tool,按下Next
專案名稱取名為HelloXCode,type設定為foundation,組織名稱與公司識別字則可依個人喜好輸入,按下Next
選擇一個想要存放專案的地方,然後按下Create,此時專案就生成摟!接著請點選左邊檔案清單中的main.m
此時右方的視窗便會呈現main.m的內容,如下面所示:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!"); } return 0; }
在不修改任何程式碼的狀況下,按下左上角的Run
右下方的Output區就出現了:
Wow,恭喜各位,正式進入了Objective-C的世界!雖然還沒有看到iPhone模擬器,但是我們離目標又更近了一些!
讓我們再回頭看看剛剛的程式碼:
整個main function是程式的進入點,有兩個輸入的變數,一個輸出的變數。@autoreleasepool使用自動記憶體機制來進行記憶體的釋放,而我們之所以能夠看到Hello, World!的輸出,關鍵在於NSLog這一行。我們透過NSLog這個函數來將後面所寫的字串輸出。
初學者建議先把重點放在NSLog這一行,那究竟什麼是NSLog呢?當我們對內建的這些函數不了解時,最簡單的方式,就是按下option鍵,然後將滑鼠移至該關鍵字上,此時就會出現一個問號,再按下滑鼠左鍵,可以看見它的定義。
哦~在描述中它有提到,Log在這邊是當作動詞使用,代表將….記入….,所以他的意思就是,你可以用NSLog來把一段錯誤訊息記入Apple系統的記錄設施,指的就是顯示在右下方的輸出區啦!
NSLog是從一開始到你很深入開發iPhone APP程式,都一路會一直使用到的功能!透過它,你可以窺探程式執行的流程正不正常、變數內容正不正常等等,很多的問題都可以透過它來找到,所以是屬於一定要會的一個函數!
咦,那Hello, World前面為什麼會有一個@呢?
在Objective-C中,使用NSString這一種字串物件型式,而這種字串物件型式的其中一個特點,就是用@開頭!
我們剛剛只是單純輸出Hello, World,那如果輸出數字怎麼做呢?
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!%d",100); } return 0; }
哦~~除了單純的字串之外,當我們要輸出其他變數內容的時候,可以透過這樣的撰寫方式,先用%d擺放在顯示的位置,再將實際的數字或是整數變數的名稱放在逗號之後!
咦,那都是用%d嗎?
當然不是!%之後要接什麼英文字母,關鍵在於你想要顯示什麼樣的變數的內容,有哪些選擇呢?此時我們可以參考Apple的「String Format Specifiers」
咦,那可以輸出數字,是否代表也可以在這邊進行運算呢?
沒錯!如同下面的例子:
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here... NSLog(@"Hello, World!%d",100+200); } return 0; }
你將會得到:
所以!目前為止,我們用Xcode跑了Hello World,還輸出了數字,並且還知道可以輸出很多不同的東西,或甚至是運算!
接下來要請各位自己來作個小實驗吧!
[自我練習]
請在NSLog之前,建立兩個變數,第一個變數為NSString物件,裡面儲存你的名字,第二個變數為整數變數int,裡面儲存你的年齡。
NSLog則預期輸出:Hello! My name is XXX, I am YY years old.
請動手做吧!
有任何問題,歡迎加入本課程的FB討論社團,你也可以在那邊找到練習題的答案!