iphone學習筆記(一)

來源:互聯網
上載者:User
文章目錄
  • 編譯並運行程式
  • 使用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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.