• ObjectiveC 实现全局变量


    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.   
    12. //example.m  
    13. #import "example.h"  
    14.   
    15. static int count;  
    16.   
    17. @implementation Example  
    18. -(id)init{  
    19. self = [super init];  
    20. if(nil!=self){  
    21. count+=1;  
    22. }  
    23. return self;  
    24. }  
    25.   
    26. +(int)instanceCount{  
    27. return count;  
    28. }  
    29.   
    30. @end  

     


    上面的例子中你就可以通过[Example instanceCount]对静态变量count进行访问,无须创建实例。

  • 相关阅读:
    一篇文章读懂JSON
    不该被忽视的CoreJava细节(四)
    Java面试题总结(二)
    Java面试题总结(一)
    不该被忽视的CoreJava细节(三)
    不该被忽视的CoreJava细节(一)
    逐步解读String类(一)
    JSP注释格式
    命令行启动mysql服务
    经典进程的同步问题之——生产者&&消费者
  • 原文地址:https://www.cnblogs.com/moonvan/p/2210507.html
Copyright © 2020-2023  润新知