天天看點

objective-c中的extern static const總結

先來看一下定義:

1、靜态變量 static

什麼是靜态變量:從面向對象的角度觸發,當需要一個資料對象為整類而非某個對象服務,同時有力求不破壞類的封裝性,既要求此成員隐藏在類的内部,有要求對外不可見的時候,就可以使用static。  靜态變量的優點:1、節省記憶體。靜态變量隻存儲一處,但供所有對象使用。     2、它的值是可以更新的。     3、可提高時間效率。隻要某個對象對靜态變量更新一次,所有的對象都能通路更新後的值。

2、全局變量extern 什麼是全局變量:也稱之為外部變量,是在方法外部定義的變量。它不屬于哪個方法,而是屬于整個源程式。 作用域是整個源程式。 如果全局便利和局部變量重名,則在局部變量作用域内,全局變量被屏蔽,不起作用。程式設計時候盡量不使用全 局變量。

3、const  變量值不可變

什麼是常量:就是在程式中定義并初始化後不能再次對其指派,簡單的說就是不能變的變量。

作用域是和普通的變量一樣。

全局變量用法總結:

extern 和 static 都必須引入頭檔案才能用,并且聲明在頭檔案@interface外面,不用執行個體對象來調用就能使用

extern int  b;  //在.h檔案中聲明,不能在.h檔案中初始化,須在.m檔案中初始化并寫在@implementation之外

static int a =789;//必須在.h檔案中聲明和初始化

綜上所述:extern和static就相當于全局變量,當然static也可以用在局部程式中

extern,static和const的結合使用,通常用來定義全局靜态常量; 例如: .h檔案中

static NSString *const kIFURL = @"abc";

.h檔案中

extern NSString *const kZDURLMenuUnit;

.m檔案中

NSString *constkZDURLMenuUnit = @"就是這個樣子";

在其他檔案中引入頭檔案,就可以使用了。