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。。。