zoukankan      html  css  js  c++  java
  • objectivec中的static

       在方法之外定义的变量不仅是全局变量,还是外部变量.但是很多场合,我们只需要定义为全局变量,并不是外部变量.也就是说希望定义的全局变量只在特定文件中是全局的,这个变量也只有在特定的类中的方法能访问,再也没有其他方法需要访问这个变量了.

       这就引出了static.

       被static修饰过的变量,在本文件中可以访问,在别的文件则不能.

       在Objective-C中的static并不是像JAVA中那样好用.

       在Objective-C中如何实现像Java中那样的静态成员变量呢?在java里只需要定义static就行了.

       在OC中你需要做的是在一个类A的implementation(.m或者.mm)文件中定义一个static变量,

       然后为A类定义静态成员函数(也就是类方法)来操作该变量。这样在其它类中你就不需要创建A类的实例来对static变量进行访问。虽然该static变量并不是A类的静态成员变量,但是也算达到了同样的效果。static变量的作用域被限制在单一的文件中。代码可以如下所示:

    @interface Example : NSObject {

    }

    - (id)init;

    +(int)instanceCount; 

    @end

    //example.m

    #import "example.h"

    staticint count;

    @implementation Example

    -(id)init{

        self = [super init];

        if(nil!=self){

            count+=1;

        }

        returnself;

    }

    +(int)instanceCount{

        return count;

    }

     @end

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

  • 相关阅读:
    MSDTC服务出错
    jquery.lazyload.js实现图片延迟加载——wordpress图片随滚动条渐显效果
    js:警惕firstChild
    基于jquery的表格排序
    jquery JSON的解析方式
    用JS jquery取float型小数点后两位
    JQuery之append和appendTo的区别,还有js中的appendChild用法
    js笔记之Math random()、ceil()、floor()、round()
    Oracle笔记
    STL: equal
  • 原文地址:https://www.cnblogs.com/mohe/p/2946894.html
Copyright © 2011-2022 走看看