iphone學習筆記(一)

之前寫學習記錄好久了,後來才發現一直寫在日記裏的別人都看不到,漸漸的懶病又犯了,現在下定決心將文章放出來,激勵自己。(之前一直在博客園裏寫的)

找來找去,覺得還是看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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章