歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Objective-C 基本的程序結構

Objective-C 基本的程序結構

日期:2017/3/1 9:26:52   编辑:Linux編程

以一段程序開始說明Objective-C 基本的程序結構。

#import <Foundation/Foundation.h>

@interface MyClass:NSObject
- (void) method;
@end

@implementation MyClass
- (void) method {
NSLog(@"Hello,OC!\n");
}
@end

int main() {
/* 初始化 */
MyClass *myClass = [[MyClass alloc]init];

/* 調用方法 */
[myClass method];
return 0;
}

終端輸出結果:

分析程序結構:

#import <Foundation/Foundation.h>

這是一段預處理指令,告訴OC編譯器,在編譯代碼前加入Foundation 下的 Foundation.h文件

@interface MyClass:NSObject
- (void)method;
@end

這段代碼以@interface開始以@end結尾,定義了一個接口(MyClass),這個接口繼承NSObject這個類,NSObject類在OC中是所有類的基類。(優點類似與java中的基類Object,但是要注意任何類繼承NSObject時必須加上":NSObject").

其中 - (void)method; 是聲明了一個 沒有返回值的、不帶參數的實例方法。

"-" 是說明是這個類的實例方法,只有這個類的實例才能調用。聲明方法還可以用 "+", "+"是說明是這個類的類方法,這個類可以調用。

"(void)" 是說明這個方法的返回是是void(可以說是沒有返回值)

"method"是這個方法的名稱。

值得注意的是方法結尾沒有一對括號,很多人剛開始時習慣加上()

@implementation MyClass
- (void)method{
NSLog(@"Hello,OC!\n");
}
@end

這段代碼以@implementation開始以@end結尾,定義了MyClass類,這個類是上面MyClass接口的實現類。

這個類中的method方法是接口的實現方法。{}內是方法的實現內容,NSLog函數是個打印輸出函數。

int main() {
/* 初始化 */
MyClass *myClass = [[MyClass alloc]init];

/* 調用方法 */
[myClass method];
return 0;
}

main函數,程序的入口。

方法的調用方式:

[實例 實例方法名];

[類名 類方法];

分析 這段初始化方法MyClass *myClass = [[MyClass alloc]init];

[MyClass alloc] 調用類方法,由這段代碼可以猜出來,這個類方法返回值是個MyClass的實例,用指針變量*myClass 接收,接著這個實例調用 init 方法初始化了這個實例。這樣寫這個方法就好理解點:

MyClass *myClass = [MyClass alloc];
[myClass init];

[myClass method]調用實例方法。

小結:

一個基本的OC程序包含: 預處理指令,接口,實現類,方法,變量。

Objective-C中@property的所有屬性詳解 http://www.linuxidc.com/Linux/2014-03/97744.htm

Objective-C 和 Core Foundation 對象相互轉換的內存管理總結 http://www.linuxidc.com/Linux/2014-03/97626.htm

使用 Objective-C 一年後我對它的看法 http://www.linuxidc.com/Linux/2013-12/94309.htm

10個Objective-C基礎面試題,iOS面試必備 http://www.linuxidc.com/Linux/2013-07/87393.htm

Objective-C適用C數學函數 <math.h> http://www.linuxidc.com/Linux/2013-06/86215.htm

好學的 Objective-C 高清PDF http://www.linuxidc.com/Linux/2014-09/106226.htm

Copyright © Linux教程網 All Rights Reserved