objective-c淺析之hello world

個人工做環境是在ubuntu中, 因此須要先安裝gnustep。
sudo apt-get install gnustep-devel

 從網上找到的一段經典的 hello world:
#import <Foundation/Foundation.h>

int main(int argc, char **argv){
    NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
    NSLog(@"Hello, Objective-C!\n");
    [pool release];
    return 0;
}

 保存爲test.m,執行編譯命令:
gcc test.m `gnustep-config --objc-flags` -lgnustep-base -o test

 測試
./test

OK,基本的環境和測試已經成功。做爲一個objective-c的門外漢,經過百度和google,從這個腳本中獲得的新知識以下。
  1. 變量前面的星號表示這是一個指針變量。
  2. objective-c中對象用中括號來進行對象調用。如:[[NSAutoreleasePool alloc] init] 轉換到PHP中就相似於:
    NSAutoreleasePool->alloc()->init();
  3. 關於字符串前面@這個符號的解釋:objective-c中引號裏的字符串默認是原始的C字符串,而@符號就是把C的字符串轉成NSString的一個簡寫,並且這個@符號聽說不支持中文。
  4. NSAutoreleasePool是對象引用計數自動處理器。後面的[pool release] 表示調用pool的release方法進行內存釋放。
 好奇心驅使,對這個小程序進行了一下精簡:
#import <Foundation/Foundation.h>

int main(){
    NSLog(@"Hello, Objective-C!\n");
    return 0;
}
相關文章
相關標籤/搜索