zoukankan      html  css  js  c++  java
  • xcode中用静态成员函数来代替全局变量

    objective c支持全局变量,用法和c/c++中相同。但是当我们要求如下时:如在A类里面定义的变量,在B类中不需要创建A类的实例就可访问和修改。
       用全局变量来实现并不合适。此时我们需要做的是在A类的implementation文件中定义一 个static变量,然后为A类定义静态成员函数(class method)来操作该变量。这样在其它类中你就不需要创建A类的实例来对static变量进行访问。虽然该static变量并不是A类的静态成员变量, 但是也算达到了同样的效果。为什么不定义全局变量,关键就在于变量的作用域,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 instanceCount]对静态变量count进行访问,无须创建实例。
  • 相关阅读:
    linux7系统进入单用户模式
    GoAccess日志分析工具
    yum总结
    分布式文件系统---GlusterFS
    【centos7】添加开机启动服务/脚本
    centos 7 服务初始化
    chrony软件
    [USACO4.1]麦香牛块Beef McNuggets 题解报告
    组合数的几种计算方法
    【ZJOI2005】沼泽鳄鱼 题解报告
  • 原文地址:https://www.cnblogs.com/top5/p/2402319.html
Copyright © 2011-2022 走看看