Android與iOS之static關鍵字異同

Java或者C語言

在某個類中聲明一個static 靜態(tài)變量, 其他類中想使用它或者修改它不用new 這個對象 袱讹,直接使用它的類名方可直接拿到這個靜態(tài)變量的對象,便可以在其他類中任意修改這個變量的數(shù)值。

Objective-C

static靜態(tài)變量在其他類中是不能通過類名直接訪問的僵朗,它的作用域只能是在聲明的這個.m文件中 席纽。不過可以調用這個類的方法間接的修改這個靜態(tài)變量的值捏悬。

MyClass.h

警告:??static 寫在interface外面編譯是沒有錯誤的,但是編譯器會報警告润梯,這么說這樣的寫法是不被編輯器認可的过牙。

錯誤:static 寫在interface里面會直接報錯甥厦,顯然這樣的語法是不被認可的。

+(void) addCount;??各位盆友們注意一下這法方法前面的+號寇钉。 它的意思是標致這個方法為靜態(tài)方法刀疙,標志+號后不用創(chuàng)建這個對象通過類名可以直接調用這個靜態(tài)方法。 而之前方法前用過的-號扫倡,標志-號后的方法必須通過本類的對象或者在本來中才可以使用谦秧。

[objc]view plaincopy

#import?

//警告

//static?int?sCount?;

@interfaceMyClass?:?NSObject

{

//錯誤的寫法

//static?int?sCount;

}

+(void)?addCount;

@end

MyClass.m

static關鍵字聲明的變量必須放在implementation外面,或者方法中撵溃,如果不為它賦值默認為0疚鲤,它只在程序開機初始化一次。

+(void)addCount 因為標識了+號缘挑,所以這個方法無需使用這個類的對象調用集歇。直接使用類名方可調用這個方法。

[objc]view plaincopy

#import?"MyClass.h"

staticintsCount??=100;

@implementationMyClass

+(void)addCount

{

sCount?++;

NSLog(@"靜態(tài)整型變量的值為:%d",?sCount);

}

@end

main.m

無需alloc這個對象语淘,直接使用MyClass類名方可直接調用addCount方法诲宇。

[objc]view plaincopy

#import?"MyClass.h"

intmain(intargc,charchar*argv[])

{

NSAutoreleasePool*pool?=?[[NSAutoreleasePoolalloc]init];

//添加我們的測試代碼

[MyClassaddCount];

intretVal?=?UIApplicationMain(argc,?argv,nil,nil);

[poolrelease];

returnretVal;

}

運行這個程序,初始化賦值為100 惶翻,調用方法的時候++姑蓝,所以打印出來的數(shù)值為101。

MyClass.m

將static整型變量定義在方法中吕粗,并且為其賦值100纺荧。

#import "MyClass.h"

@implementation MyClass

+(void)addCount

{

static int sCount??= 100;

sCount ++;

NSLog(@"靜態(tài)整型變量的值為:%d", sCount);

}

@end

main.m

循環(huán)5次調用這個方法,看看結果是什么樣字溯泣,結果肯定是101吧虐秋。。

#import

#import "MyClass.h"

int main(int argc, char *argv[])

{

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

//添加我們的測試代碼

for (int i =0; i < 5; i++) {

[MyClass addCount];

}

int retVal = UIApplicationMain(argc, argv, nil, nil);

[pool release];

return retVal;

}

程序員不要相信任何人說的任何有關程序的話垃沦,一定相信自己客给,相信自己眼睛看到的一切,哇咔咔~~

可見即使將static靜態(tài)變量寫在方法中肢簿,

它的初始化也是在程序開機時靶剑,程序一旦啟動以后static是不能在創(chuàng)建的。

所以程序在這里調用了5次這個方法池充,sCount的值并沒有因為重新創(chuàng)建static sCount而改變桩引,而是將sCount的值一直存在內(nèi)存中。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末收夸,一起剝皮案震驚了整個濱河市坑匠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卧惜,老刑警劉巖厘灼,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件夹纫,死亡現(xiàn)場離奇詭異,居然都是意外死亡设凹,警方通過查閱死者的電腦和手機舰讹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來闪朱,“玉大人月匣,你說我怎么就攤上這事》茏耍” “怎么了锄开?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長称诗。 經(jīng)常有香客問我院刁,道長,這世上最難降的妖魔是什么粪狼? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮任岸,結果婚禮上再榄,老公的妹妹穿的比我還像新娘。我一直安慰自己享潜,他們只是感情好困鸥,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著剑按,像睡著了一般疾就。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上艺蝴,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天猬腰,我揣著相機與錄音,去河邊找鬼猜敢。 笑死姑荷,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的缩擂。 我是一名探鬼主播鼠冕,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胯盯!你這毒婦竟也來了懈费?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤博脑,失蹤者是張志新(化名)和其女友劉穎憎乙,沒想到半個月后票罐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡寨闹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年胶坠,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片繁堡。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡沈善,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出椭蹄,到底是詐尸還是另有隱情闻牡,我是刑警寧澤,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布绳矩,位于F島的核電站罩润,受9級特大地震影響,放射性物質發(fā)生泄漏翼馆。R本人自食惡果不足惜割以,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望应媚。 院中可真熱鬧严沥,春花似錦、人聲如沸中姜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽丢胚。三九已至翩瓜,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間携龟,已是汗流浹背兔跌。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留骨宠,地道東北人浮定。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像层亿,于是被迫代替她去往敵國和親桦卒。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理匿又,服務發(fā)現(xiàn)方灾,斷路器,智...
    卡卡羅2017閱讀 134,651評論 18 139
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • 1.OC里用到集合類是什么? 基本類型為:NSArray裕偿,NSSet以及NSDictionary 可變類型為:NS...
    輕皺眉頭淺憂思閱讀 1,374評論 0 3
  • 前言 Blocks是C語言的擴充功能洞慎,而Apple 在OS X Snow Leopard 和 iOS 4中引入了這...
    小人不才閱讀 3,768評論 0 23
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法嘿棘,內(nèi)部類的語法劲腿,繼承相關的語法,異常的語法鸟妙,線程的語...
    子非魚_t_閱讀 31,623評論 18 399