【Objective-C】04-第一個OC程式解析

來源:互聯網
上載者:User

標籤:

說明:這個Objective-C專題,是學習iOS開發的前奏。也為了讓有物件導向語言開發經驗的程式猿,可以高速上手Objective-C。假設你還沒有編程經驗,或者對Objective-C、iOS開發不感興趣,請忽略。

學習本專題之前,建議先學習C語言專題。

在上一講,已經建立了第一個OC程式,這講就來解析它內部的代碼。

查看項目結構能夠發現這個程式中僅僅有一個源檔案:main.m

開啟main.m檔案,代碼例如以下

 1 #import <Foundation/Foundation.h> 2  3 int main(int argc, const char * argv[]) 4 { 5  6     @autoreleasepool { 7          8         // insert code here... 9         NSLog(@"Hello, World!");10         11     }12     return 0;13 }
1.程式的進入點:main函數

跟C程式一樣。OC程式的進入點依舊是main函數。在main.m的第3行已定義了一個main函數。

 

[email protected]

在Java中,有記憶體回收機制,系統會自己主動回收不再使用的對象;而OC是不支援記憶體回收的。須要開發人員編寫代碼來釋放對象所佔用的記憶體。在第6行有個@autoreleasepool{},這是跟記憶體管理有關的,臨時不用理解它的意思,你僅僅須要記住:以後的OC代碼都寫在@autoreleasepool的{}內部。

 

3.NSLog

1> 第9行的NSLog是一個日誌輸出函數,它能夠將傳入的OC字串參數輸出到控制台上。

2> 函數參數@"Hello, Wolrd!"是一個OC字串,並非C語言字串,全部OC字串的前面都有個@。

3> 第9行代碼NSLog(@"Hello, World!");的輸出結果是:

紅框左邊的資訊是NSLog自己主動加上去的,比方日誌輸出時間、項目名稱等。並且NSLog輸出完成後自己主動換行。

4> NSLog也能夠像C語言的printf函數一樣支援格式符

1 int age = 10;2 NSLog(@"My age is %i and height is %.2f", age, 1.55f);

* %i表示接收整型資料

* %f表示接收浮點型資料。%.2f表示保留2位小數

* 輸出結果:

2013-04-06 17:43:07.380 第一個OC程式[693:303] My age is 10 and height is 1.55

 

4.#import

1> #import是一個預先處理指令,作用跟C語言的#include類似,都是 包括(拷貝)某個檔案的內容 到 預先處理指令所在的位置。

2> 第1行的#import <Foundation/Foundation.h>表示包括Foundation架構中的Foundation.h檔案。

1) Foundation架構中包括了非常多經常使用的類和函數,比方字串處理類NSString、日誌輸出函數NSLog。它的重要程度相當於Java中的java.lang.*

2) Foundation架構和Foundation.h檔案的位置:

3> 我在C語言專題的第三講說過:.h稱為標頭檔,一般用來聲明一些函數,想要使用這些函數。就必須用#include包括函數所在的標頭檔。

我們在第9行中使用的NSLog函數存在於Foundation.h檔案裡,因此要先包括Foundation.h檔案才幹使用NSLog函數。就好像在Java中,你用importkeyword引入一個類後才幹正常使用這個類。

4> 在C\C++中,我們用#include來包括標頭檔,缺點就是同一個標頭檔可能被包括多次。為瞭解決問題,通常會這樣寫標頭檔:

#ifndef _TEST_H_#define _TEST_H_/*.....*/#endif

我們在OC中,就使用#import來包括標頭檔,長處是能夠自己主動防止同一個標頭檔被包括多次。

5> #import <...>表示包括系統內建的檔案。#import "..."表示包括開發人員自己建立的檔案

分類: 非零基礎學習iOS開發2-Objective-C

【Objective-C】04-第一個OC程式解析

聯繫我們

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