文章目錄
- 編譯並運行程式
- 使用Xcode
- 詳解你的第一個程式
之前寫學習記錄好久了,後來才發現一直寫在日記裡的別人都看不到,漸漸的懶病又犯了,現在下定決心將文章放出來,激勵自己。(之前一直在部落格園裡寫的)
找來找去,覺得還是看E文資料學習iphone開發比較靠譜,因此以翻譯Programing in Objective-c2.0一書,做為學習objective-c的主線。
第一章基本是扯些無用的,和文法方面基本沒什麼關係。從第二章開始。
2用objective-c編程
在本章中,我們將教您如何寫出您的第一個objectve-c程式。你到目前還不會使用它,那將是我們下一章節的主題。我們希望您能夠明白如何寫一個程式,並且編譯運行它。我們將特別的同時在windows和mac上操作。
開始,我們選擇一個相當簡單的例子:一個在你的螢幕上顯示“Programming is fun!”短語的程式。事不宜遲,Program 2.1顯示了一個完成該任務的objective-C程式。
Program 2.1
//First program example#import
<Foundation/Foundation.h>int main(int argc,const char * argv[]){
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NSlog(@"Programming is fun!");
[pool drain];
reutrn 0;
}
編譯並運行程式
在我們詳細解釋這個程式之前,我們需要先走完編譯與啟動並執行步驟。你可以用x-code編譯和運行你的程式或者使用GNC Objective-c在終端視窗中編譯它。我們將兩種方法貫穿在以上步驟中。現在你可以決定你希望在哪個平台上編譯你的程式。
使用Xcode
Xcode是一個進階的應用程式可以讓你很容易的輸入、編譯、調試,並執行程式。如果你準備在MAC系統上開發一個很重要的應用程式,學會如何使用xcode這個強力工具是非常有價值的。我們讓你從這裡開始。稍後,我們回到xcode並且帶你貫穿開發圖形介面應用程式的所有複雜步驟。
首先,Xcode 位於開發檔案夾下的一個叫做Application的子檔案夾中。它的表徵圖2.1所示
(圖2.1)
開啟Xcode,在功能表列的File中選擇New Project(見圖2.2)
(圖2.2)
將出現2.3的視窗。
(圖2.3)
選擇application,找到comand line Tool 下面的Type選擇foundation點擊Choose確定。(此處與原作略有不同,因為版本差別,造成顯示略有差異。)給項目取一個名字儲存即可。我參照原作,給項目取名為prog1.儲存後,將出現2.6所示視窗。
(圖2.6)
(按原著所說,如果你之前已經使用過過Xcode或者更改了配置你顯示的視窗將略有不同。)
現在是時候寫你的第一個程式了。選擇左欄中的prog1.m檔案此時你的表單將變成2.7所示
(圖2.7)
objective-c的源檔案以 .m
結尾。下表是其他常用的副檔名。(取自原著)
回到Xcode項目表單。在靠右邊的部分你可以看到如下代碼。
1 #import<Foundation/Foundation.h>
2 int main(int argc,const char * argv[]){
3 NSAutoreleasePool * pool=[[NSAutoreleasePool alloc] init];
4 //insert code here...
5 NSLog(@"Hello World!");
6 [pool drain];
7 reutrn 0;
8 }
你可以在這個表單中寫你的檔案,Xcode已經為你建立了一個模板檔案。(這樣太書面化的翻譯實在是太彆扭了,總感覺有種抄書的感覺,我在稍後的內容中,將全部以我的理解來寫,盡量說成大白話的形式,便於領會。其中不乏省略一些個人感覺沒有實際意義的內容。)
現在我們在程式的開頭寫如下代碼:
//First program example
objective-c中也是以 // 作為注釋。
不用擔心在你螢幕上的各種不同顏色的代碼,在Xcode中,保留字,實值型別等都有著不同的顏色來表示。
現在是時候在Xcode編譯並且運行你的第一個程式了,點擊功能表列上的“Build and Run”按鈕。在此之前你需要儲存你的程式,你可以通過點擊功能表列中的File,選擇Save選項儲存,又或者你直接點擊“Build
and Rund”按鈕,編譯器會提示你儲存你的檔案。
在功能表列中的Build下,你可以選擇Build或者Build and Run.我們選擇後者,因為它會在編譯後自動運行只要你的程式沒有錯誤。同樣的你可以點擊Build,這時候工具列上會出現Go表徵圖。
如果你的程式中有錯誤,你會在這一步發現錯誤資訊。在這種情況下,返回並且修正錯誤,重複剛才的動作。當程式中所有錯誤被修複,一個標題為prog1 - Debugger Console 的新表單將出現在你眼前。這個表單包含你程式的輸出結果。
現在你已經用Xcode完成了一個程式的編譯和運行部分。下面總結用Xcode建立一個新程式的過程:
1、開啟Xcode 應用程式。
2、如果這是一個新工程,請選擇New Project
3、選擇程式類型,Foundation Tool,點擊Choose確定。
4、給工程命名,點擊Save儲存。
5、在右邊的表單中找到prog1.m在下面輸入你的代碼。
6、點擊File下面的Save儲存你對程式的修改。
7、通過點擊Build and run ,編譯和運行你的應用程式,。
8、如果你得到很多錯誤資訊,修複後,重複第6到7步。
一些人可能希望避免學習使用Xcode來進行objective-c 的學習。如果你之前用過UNIX命令列,你可能希望通過Terminal Application來寫、編譯、運行你的程式。下面我們來說明如何使用它們。
第一步開啟你Mac中的Terminal application 。Terminal application在應用程式檔案夾下,開啟後,你會看到2.10所示。
(圖2.10)
你可以給objective-c檔案起任何名字,只要保證最後以.m 結尾。這將告訴編譯器你有一個objective-c程式。
接下來,你需要在該檔案中編寫你的程式,你可以使用GNU Objective-c編譯器,它的名字叫GCC,用來編譯和連結你的程式。下面是一段普通的GCC命令列:gcc-framework Foundation files -o progname(因為我不用命令列的,下面的懶得看了,直接入正題。)
詳解你的第一個程式
現在你已經熟悉了編譯運行一個程式的步驟,讓我們仔細看看這第一個程式。
1 //First program example
2 #import <Foundation/Foundation.h>
3 int main(int argc,const char * argv[])
4 {
5 NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
6 NSlog(@"Programming is fun!");
7 [pool drain];
8 reutrn 0;
9 }
在objective-c中,是區分大小寫字母的。第一個要介紹的概念是注釋。如: //First program example
注釋是用來在程式中標記,或提高程式可讀性的。正確的使用注釋是有很多好處的。
在objective-c中,使用注釋有兩種方法。一種是單行注釋,以兩個
/ 開頭,如: //First program example
另一種是多行注釋,以 /* 開頭,*/ 結尾。注釋方法與c#中一樣,後面就剩下些說養成寫注釋的好習慣等等好處,就不想寫了,相信寫過程式的人都知道在拿到一個別人寫到一半的程式,卻發現裡面沒有幾行注釋的時候,你心裡會作何感想,又或者是自己命名不規範,都是一堆label1,button2 的時候,即使是自己寫的程式,要是沒有注釋的話,等你過個幾天再看的時候肯定也會崩潰的。
繼續回到之前的代碼,在程式的第二行,我們可以看到#import,這是告訴編譯器我們在引用一個叫做Foundation.h的檔案,類似於#include。表示裡面有些你需要用到的方法什麼之類的。
下面詳細說一下main函數。
main是一個特殊的名字,指出程式的入口。在main之前的保留字元 int 表示main函數的傳回值,表示返回一個int(即整形)的值。我們現在先忽略圓括弧中的內容,我們將在後續章節中詳談。
現在你已經初步接觸了main函數,你應當詳細指定它如何執行。這些取決於在一堆花括弧中的所有代碼。所有的程式聲明都在花括弧以內。
程式中的第一個statement :
NSAutoreleasePool * pool=[[NSAutoreleasePool alloc] init];
用來在記憶體中申請空間。我們將在第17章,記憶體管理中,詳細討論這些。現在先不討論這些。
下一句 @"Programming is fun!"
在括弧中的 @符號表示這是一個NSString 對象(objective-c中的字串)。
NSLog是object-c,library中的函數,用來顯示。在這樣做之前,雖然它可以顯示日期,時間,程式執行結果,程式名字,或者其他數字,我們不在這裡詳述。
今天先到這裡吧,看了半天的鳥文太累。 p21