溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時(shí)間:2020-06-03 19:11:54 來源:網(wǎng)絡(luò) 閱讀:202 作者:danielzzu 欄目:移動(dòng)開發(fā)

郝萌主傾心貢獻(xiàn),尊重作者的勞動(dòng)成果,請(qǐng)勿轉(zhuǎn)載。

如果文章對(duì)您有所幫助,歡迎給作者捐贈(zèng),支持郝萌主,捐贈(zèng)數(shù)額隨意,重在心意^_^ 

我要捐贈(zèng): 點(diǎn)擊捐贈(zèng)

Cocos2d-X×××:點(diǎn)我傳送


編譯運(yùn)行Objective-C程序有兩種主要方式:

1、Xcode集成開發(fā)環(huán)境。

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


使用Xcode

XCODE和iOS SDK下載地址:

developer.apple.com

當(dāng)然也可以從App Store里面下載。

當(dāng)然,你需要?jiǎng)?chuàng)建一個(gè)開發(fā)者賬號(hào),不過暫時(shí)是不需要的。


Objective-C源文件使用.m結(jié)尾,.m也就是擴(kuò)展名。

Objective-C++是C++的擴(kuò)展,類似于Objective-C是C的擴(kuò)展。


A、使用Xcode創(chuàng)建新程序的操作步驟:

1、啟動(dòng)Xcode應(yīng)用程序。

2、如果開發(fā)新項(xiàng)目,選擇File->New->New Project...,或者在起始頁(yè)選擇Create a New Xcode Project。

3、選擇應(yīng)用程序類型,選擇Application->Command Line Tool(剛開始學(xué)習(xí),就不搞什么圖形界面了先。這個(gè)和C語(yǔ)言差不多),然后Next。

4、為應(yīng)用程序取一個(gè)名稱,并且將Type設(shè)置為Foundation,確定Use Automatic Reference Counting復(fù)選框已經(jīng)選中(這個(gè)是為了使用新的特性,即ARC),單擊Next。

5、選擇項(xiàng)目目錄的名稱,還可以選擇在哪個(gè)目錄中存儲(chǔ)項(xiàng)目文件,然后點(diǎn)擊Create。

6、在左上窗格中會(huì)看到文件main.m(在與項(xiàng)目名同名的文件夾下可以找到),突出顯示該文件(就是單擊那個(gè)文件)。在該窗口下面的編輯窗口中輸入或編輯你的程序。

7、在工具欄中,選擇位于View下方中間的圖標(biāo),將顯示調(diào)試區(qū)域,在這個(gè)區(qū)域會(huì)將顯示輸出結(jié)果。l

8、在工具欄中點(diǎn)擊Run按鈕,或者從Product菜單中選擇Run,編譯并運(yùn)行程序。

如圖示:

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

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

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

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

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

B、使用Terminal命令行寫程序的操作步驟:

1、打開Terminal。

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

$mkdir test

進(jìn)入工作目錄

$cd test

新建并編輯,

$vi main.m

VI的使用,請(qǐng)參考以下鏈接:

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


輸入你的第一個(gè)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。這個(gè)和Linux下的GCC使用差不多。大家不會(huì)的話,可以看看GCC那套編譯。

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

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

$./test

5、輸出結(jié)果就會(huì)顯示在命令行中。

需要注意的一點(diǎn)是:Objective-C是大小寫敏感的,也就是說區(qū)分大小寫,所以寫代碼的時(shí)候注意這點(diǎn)。

詳解:

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

b、#import:告訴編譯器找到并處理名為Foundation.h文件, 這是一個(gè)系統(tǒng)文件;
#import表示將該文件的信息導(dǎo)入到程序中
;

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

而#import是#include改進(jìn)指令, 它可以防止頭文件重復(fù)包含問題;

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

參數(shù)argc-參數(shù)數(shù)目 , argv-參數(shù)值

d、@autoreleasepool自動(dòng)釋放池:它使得應(yīng)用在創(chuàng)建新對(duì)象時(shí),系統(tǒng)能夠有效地管理應(yīng)用所使用的內(nèi)存;

或者使用下面的方式:

// 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]
語(yǔ)句是創(chuàng)建一個(gè)自動(dòng)釋放內(nèi)存池對(duì)象, 使用它來維護(hù)內(nèi)存釋放和回收, 

其中alloc方法是分配內(nèi)存, init方法是初始化類, 相當(dāng)于C++或Java的構(gòu)造方法作用。

[pool drain]語(yǔ)句是用來釋放內(nèi)存池, 它將納入到這個(gè)內(nèi)存池中管理的對(duì)象內(nèi)存全部釋放掉, 

關(guān)于NSAutoreleasePool問題我們將在內(nèi)存管理部分詳細(xì)討論。


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

NSLog是Foundation框架提供的Objective-C日志輸出函數(shù),
與標(biāo)準(zhǔn)C中的printf函數(shù)類似, 并可以格式化輸出。 
@“Hello, World!”, 常量NSString對(duì)象,是代表NSString字符串對(duì)象, 它是Objective-C常用的字符串類。 


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

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

這是沿用了C語(yǔ)言的習(xí)慣。


Objective-C代碼的文件擴(kuò)展名

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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI