Objective-C 靜態變數 使用方法

來源:互聯網
上載者:User

標籤:

 詳解Objective-C中靜態變數使用方法 Objective-C靜態變數使用方法是本文要介紹的內容, Objective-C 支援全域 變數,主要有兩種實現方式:第一種和C/C++中的一樣,使用"extern"關鍵詞;另外一種就是使用單例實現。(比如我們經常會把一個 變數放在AppDelegate裡面作為全域 變數來訪問,其中AppDelegate就是一個單例類)

在Objective-C中如何?像C++中那樣的靜態成員變數呢?

你需要做的是在一個類A的implementation(.m或者.mm)檔案中定義一個static變數,然後為A類定義靜態成員函數(class method,也就是類方法)來操作該變數。這樣在其它類中你就不需要建立A類的執行個體來對static變數進行訪問。雖然該static變數並不是A類的靜態成員變數,但是也算達到了同樣的效果。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 

上面的例子中你就可以通過[Example instanceCount]對靜態變數count進行訪問,無須建立執行個體。

 

Objective-C 靜態變數 使用方法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.