自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解Objective-C中靜態(tài)變量使用方法

移動(dòng)開(kāi)發(fā) iOS
在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)操作該變量。

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變量的作用域被限制在單一的文件中。代碼可以如下所示:

  1. //example.h     
  2. @interface Example : NSObject {    
  3.     
  4. }    
  5.     
  6. - (id)init;    
  7. +(int)instanceCount;    
  8.     
  9. @end    
  10.     
  11. //example.m     
  12. #import "example.h"     
  13.     
  14. static int count;    
  15.     
  16. @implementation Example    
  17. -(id)init{    
  18. self = [super init];    
  19. if(nil!=self){    
  20. count+=1;    
  21. }    
  22. return self;    
  23. }    
  24.     
  25. +(int)instanceCount{    
  26. return count;    
  27. }    
  28.     
  29. @end    
  30. //example.h  
  31. @interface Example : NSObject {  
  32.  
  33. }  
  34.  
  35. - (id)init;  
  36. +(int)instanceCount;  
  37.  
  38. @end  
  39.  
  40.  
  41. //example.m  
  42. #import "example.h"  
  43.  
  44. static int count;  
  45.  
  46. @implementation Example  
  47. -(id)init{  
  48. self = [super init];  
  49. if(nil!=self){  
  50. count+=1;  
  51. }  
  52. return self;  
  53. }  
  54.  
  55. +(int)instanceCount{  
  56. return count;  
  57. }  
  58. @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ì)你有所幫助

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-07-19 17:18:35

Objective-C Property

2011-08-02 15:55:31

Objective-C NSAutorele

2011-08-10 11:08:32

Objective-C字符串NSString

2011-08-17 11:05:22

Objective-C方法

2011-08-22 15:31:35

Objective-C協(xié)議

2011-08-04 09:56:30

Objective-C 變量 數(shù)據(jù)類(lèi)型

2011-07-27 16:36:03

iphone Objective- 靜態(tài)庫(kù)

2011-08-16 10:23:04

Objective-CNSAutoreleaXcode常用鍵

2011-08-15 17:47:13

Objective-CisMemberOfC

2011-07-08 18:44:09

Objective-C Self Super

2011-07-29 16:16:30

Objective-c block

2011-08-17 10:58:59

Objective-C構(gòu)造函數(shù)

2011-07-27 16:18:42

Objective-c 協(xié)議

2011-07-18 16:36:51

Objective-C XCode

2015-10-08 10:01:10

Objective-CLayout

2014-04-01 10:50:42

iOS開(kāi)發(fā)runtimeObjective-C

2011-08-04 17:13:48

Objective-C 字符串

2011-08-17 10:29:39

Objective-C預(yù)處理

2023-10-07 15:53:05

C/C++靜態(tài)變量內(nèi)存

2011-08-04 13:38:01

Objective-C C++
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)