詳解Objective-C中靜態(tài)變量使用方法
Objective-C中靜態(tài)變量使用方法是本文要介紹的內(nèi)容,Objective-C 支持全局變量,主要有兩種實(shí)現(xiàn)方式:***種和C/C++中的一樣,使用"extern"關(guān)鍵詞;另外一種就是使用單例實(shí)現(xiàn)。(比如我們經(jīng)常會(huì)把一個(gè)變量放在AppDelegate里面作為全局變量來(lái)訪問(wèn),其中AppDelegate就是一個(gè)單例類(lèi))
在Objective-C中如何實(shí)現(xiàn)像C++中那樣的靜態(tài)成員變量呢?
你需要做的是在一個(gè)類(lèi)A的implementation(.m或者.mm)文件中定義一個(gè)static變量,然后為A類(lèi)定義靜態(tài)成員函數(shù)(class method,也就是類(lèi)方法)來(lái)操作該變量。這樣在其它類(lèi)中你就不需要?jiǎng)?chuàng)建A類(lèi)的實(shí)例來(lái)對(duì)static變量進(jìn)行訪問(wèn)。雖然該static變量并不是A類(lèi)的靜態(tài)成員變量,但是也算達(dá)到了同樣的效果。static變量的作用域被限制在單一的文件中。代碼可以如下所示:
- //example.h
- @interface Example : NSObject {
- }
- - (id)init;
- +(int)instanceCount;
- @end
- //example.m
- #import "example.h"
- static int count;
- @implementation Example
- -(id)init{
- self = [super init];
- if(nil!=self){
- count+=1;
- }
- return self;
- }
- +(int)instanceCount{
- return count;
- }
- @end
- //example.h
- @interface Example : NSObject {
- }
- - (id)init;
- +(int)instanceCount;
- @end
- //example.m
- #import "example.h"
- static int count;
- @implementation Example
- -(id)init{
- self = [super init];
- if(nil!=self){
- count+=1;
- }
- return self;
- }
- +(int)instanceCount{
- return count;
- }
- @end
上面的例子中你就可以通過(guò)[Example instanceCount]對(duì)靜態(tài)變量count進(jìn)行訪問(wèn),無(wú)須創(chuàng)建實(shí)例。
小結(jié):詳解Objective-C中靜態(tài)變量使用方法的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)對(duì)你有所幫助