Objective-C之成魔之路【2-Objective-C 編程】,objectivec編程

來源:互聯網
上載者:User

Objective-C之成魔之路【2-Objective-C 編程】,objectivec編程

重開發人員的勞動成果,請勿轉載


編譯運行Objective-C程式有兩種主要方式:

1、Xcode整合式開發環境。

2、使用GNU Objective-C編譯器的Terminal命令列視窗。


使用Xcode

XCODE和iOS SDK:

developer.apple.com

當然也可以從App Store裡面下載。

當然,你需要建立一個開發人員帳號,不過暫時是不需要的。


Objective-C源檔案使用.m結尾,.m也就是副檔名。

Objective-C++是C++的擴充,類似於Objective-C是C的擴充。


A、使用Xcode建立新程式的操作步驟:

1、啟動Xcode應用程式。

2、如果開發新項目,選擇File->New->New Project...,或者在起始頁選擇Create a New Xcode Project。

3、選擇應用程式類型,選擇Application->Command Line Tool(剛開始學習,就不搞什麼圖形介面了先。這個和C語言差不多),然後Next。

4、為應用程式取一個名稱,並且將Type設定為Foundation,確定Use Automatic Reference Counting複選框已經選中(這個是為了使用新的特性,即ARC),單擊Next。

5、選擇項目目錄的名稱,還可以選擇在哪個目錄中儲存專案檔,然後點擊Create。

6、在左上窗格中會看到檔案main.m(在與項目名同名的檔案夾下可以找到),反白該檔案(就是單擊那個檔案)。在該視窗下面的編輯視窗中輸入或編輯你的程式。

7、在工具列中,選擇位於View下方中間的表徵圖,將顯示調試地區,在這個地區會將顯示輸出結果。l

8、在工具列中點擊Run按鈕,或者從Product菜單中選擇Run,編譯並運行程式。

示:






B、使用Terminal命令列寫程式的操作步驟:

1、開啟Terminal。

2、選擇你的工作(工程)目錄。如果沒有:

$mkdir test

進入工作目錄

$cd test

建立並編輯,

$vi main.m

VI的使用,請參考以下連結:

http://en.wikipedia.org/wiki/Vi


輸入你的第一個Program:

// My first Program#import <Foundation/Foundation.h> int main(int argc, char *argv[]){    @autoreleasepool{        NSLog(@"Hello World!");    }  return 0;}

3、編譯,編譯連結器使用clang的LLVM Clang Objective-C。這個和Linux下的GCC使用差不多。大家不會的話,可以看看GCC那套編譯。

$clang -fobjc-arc -framework Foundation main.m -o test

4、運行,這個和Linux是一樣的編譯的可執行檔前面加上“./”。也可以把工程目錄加到PATH中(這樣就可以不要"./"),一般沒必要。

$./test

5、輸出結果就會顯示在命令列中。

需要注意的一點是:Objective-C是大小寫敏感的,也就是說區分大小寫,所以寫代碼的時候注意這點。

詳解:

a、注釋:使用//或者/* ... */

b、#import:告訴編譯器找到並處理名為Foundation.h檔案, 這是一個系統檔案;
#import表示將該檔案的資訊匯入到程式中;

在C和C++中採用 #include指令, 在本例中也可以採用#include, 

而#import是#include改進指令, 它可以防止標頭檔重複包含問題;

c、int main(int argc, const char * argv[]) , 這個方法是程式的入口 。 

參數argc-參數數目 , argv-參數值

d、@autoreleasepool自動釋放池:它使得應用在建立新對象時,系統能夠有效地管理應用所使用的記憶體;

或者使用下面的方式:

// First program example#import <Foundation/Foundation.h>int main (int argc, const char * argv[]) {NSAutoreleasePool * pool =[[NSAutoreleasePool alloc] init];// insert code here...NSLog(@"Hello World!");[pool drain];return 0;}

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]
語句是建立一個自動釋放記憶體池對象, 使用它來維護記憶體釋放和回收, 

其中alloc方法是分配記憶體, init方法是初始化類, 相當於C++或Java的構造方法作用。

[pool drain]語句是用來釋放記憶體池, 它將納入到這個記憶體池中管理的對象記憶體全部釋放掉, 

關於NSAutoreleasePool問題我們將在記憶體管理部分詳細討論。


e:NSLog:oc庫函數,僅僅顯示或記錄其參數,還能顯示變數,使用%i;

NSLog是Foundation架構提供的Objective-C日誌輸出函數,
與標準C中的printf函數類似, 並可以格式化輸出。 
@“Hello, World!”, 常量NSString對象,是代表NSString字串對象, 它是Objective-C常用的字串類。 


f:retrun 0:程式正常退出;

它表示要終止main的執行, 一般情況下0代表正常結束, 非0代表異常情況, 

這是沿用了C語言的習慣。


Objective-C代碼的副檔名



Objective-C20程式設計與 Objective-C 基礎教程 不同

objective-c2.0這本書重點講的是objective-c語言,還算詳細
基礎教程簡單介紹了下ob-c注重將的是介面設計,各種互動,還有動畫設計之類。
建議先看程式設計。介面之類的邊看邊寫。
 
Objective-C編程:(會Objective-C的大鳥舉個手哈)

需要MacOS。。。
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.