static全局變量僅對當前文件生效,即在A文件中修改改艇,在B文件中值不生效兰粉;在A的分類也不生效焊唬。一個static全局變量在不同文件會產(chǎn)生多份恋昼。
對于iOS static全局變量,如果只是當做一個常量赶促,可以使用液肌;如果是項目中需要賦值,建議謹慎使用鸥滨。
下面舉例嗦哆,并附上demo
在Const.h中定義static int topmargin =44;并在modity方法topmargin修改為64。
在appdelegate->didFinishLaunchingWithOptions 中調用[Const modity]修改topmargin=64;
全局變量打印值和地址
按以前的邏輯爵赵,在初始化時令topmargin=64吝秕,然后所有地方使用應該是64。而實際情況在ViewController中打印值卻是Const.h初始化的值44空幻,地址也產(chǎn)生了變量烁峭。
圖1的結果說明:同一個static全局變量,在不同類中地址都不相同秕铛,且在Const modity修改static變量值后约郁,其他類也未生效。
這就所為的static全局變量僅對當前文件生效但两。即自己使用自己修改鬓梅,多個文件會產(chǎn)生多份。ViewController及其分類也是獨立的谨湘。