Objective-C中的static变量

Java 、 C++ 语言中,在某个类中声明一个static 静态变量, 其他类中想使用它或者修改它 ,可以使用这个类的类名直接获得这个静态变量的对象,并且可以在其他类中任意修改这个变量的数值。 

在Objective-C 中,声明的static静态变量在其他类中是不能通过类名直接访问的,它的作用域只能是在声明的这个.m文件中 。但是可以调用类的静态方法间接的修改静态变量的值。

也就是说不能在.h文件中声明static变量,例如下面两种情况都是错的,是编译不过的

 

@interface  MyClass
{
      static  int totalNum;
}
@end

或者

static int totalNum;
@interface MyClass
@end

 

但是可以再@implement 中声明static变量,或者之外都可以。

 

静态变量在oc中常用作单例模式中,因为可以常驻内存。例如打开一个页面,发起一个请求,立即关掉页面,但是想请求处理依然可以完成,可以把数据请求和解析写成一个单例。 但是请求处理完成之后,在恰当的时机就该清除这个静态对象,以便节省内存。

 

posted @ 2013-01-02 16:19  happywilma  阅读(341)  评论(0编辑  收藏  举报