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

这就引出了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进行访问,无须创建实例。

转载于:https://www.cnblogs.com/mohe/archive/2013/03/13/2946894.html

objective-c中的static相关推荐

  1. 浅谈C/C++中的static和extern关键字

    一.C语言中的static关键字 在C语言中,static可以用来修饰局部变量,全局变量以及函数.在不同的情况下static的作用不尽相同. (1)修饰局部变量 一般情况下,对于局部变量是存放在栈区的 ...

  2. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  3. c++语言static作用,详解c++中的 static 关键字及作用

    注:若没有特指是 静态成员时,默认都是普通成员: 1 类中的普通成员 类中的成员变量 和 成员函数 是分开存储的.其中, 1)每个对象都有独立的成员变量:成员变量可以存储在 栈空间.堆空间.全局数据区 ...

  4. php static 和 global,php中global static和$GLOBALS使用与区别

    本文章来总结介绍关于php中global static和$GLOBALS使用与区别有需要了解他们三区别的朋友可参考参考. 1.global在整个页面起作用. 例1  代码如下 复制代码 global ...

  5. Java中的static关键字详解

    ** Java中的static关键字详解 ** 在一个类中定义一个方法为static,即静态的,那就是说无需本类的对象就可以调用此方法.调用一个静态方法就是 "类名.方法名" ,静 ...

  6. C++中的static关键字的总结

    C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static.前者应用于普通变量和函数,不涉及类:后者主要说明static在类中的作用. 1.面向过程设计中的st ...

  7. Java中的static关键字解析 转载

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...

  8. C语言中:在头文件中使用static定义变量意味着什么?

    C语言中:在头文件中使用static定义变量意味着什么? 看到有一位同学在头文件中这么写: static const wchar_t* g_str1 = - static const wchar_t* ...

  9. simpledateformat 毫秒_阿里巴巴 | 为啥代码中禁用static修饰SimpleDateFormat?

    来自:8rr.co/4KkS 在项目开发过程中经常遇到时间处理,但是你真的用对了吗,理解阿里巴巴开发手册中禁用static修饰SimpleDateFormat吗? 通过阅读本篇文章你将了解到: 为什么 ...

  10. php静态方法场景,深入介绍PHP中的static的修饰方法和yield的使用场景

    相信PHP程序员对于生成器并不陌生,但是也有很多人并不知道生成器这个功能,因为它是后期才能大家熟知的,下文是爱站技术频道小编带给大家的深入介绍PHP中的static的修饰方法和yield的使用场景,一 ...

最新文章

  1. mysql 设置 0、1 用什么数据类型_MySQL索引的基本使用
  2. idea/eclipse下Maven工程集成web服务(tomcat、jetty)
  3. python操作MySQL实例
  4. python 可变参数
  5. comparable和comparator比较
  6. Use BAdI to link appointment to a given opportunity during creation
  7. 使用ST03N查看指定user的transaction 性能数据
  8. Java排查问题随笔
  9. oracle 查询dbid,查看oracle 数据库的DBID
  10. 各种移动GPU压缩纹理的使用方法
  11. php微信绑定银行卡_PHP实现微信提现功能
  12. excel打开空白不显示内容 没有隐藏_办公软件操作技巧097:如何隐藏excel表格中没有数据的空白区域...
  13. #includemmsystem头文件出错
  14. Java 基础总结--反射的基本操作
  15. 字母数字下划线常用正则表达式
  16. Android扫描wifi二维码自动连接wifi
  17. 鸡兔同笼的两种求解(C语言)
  18. 红孩儿编辑器的核心控制子系统的函数依赖关系图
  19. 计算机课word作业提交,1mjt-计算机上机考试作业之Word实验
  20. 股票数据转换和数据提取软件。

热门文章

  1. php ci post 请求,ci检测是ajax还是页面post提交数据的方法
  2. 办公技巧:Excel下拉菜单小技巧,赶紧学一下!
  3. Linux最全命令详解,请记下来!
  4. 数据挖掘:数据仓库相关知识笔记
  5. 程序员编程必备名言佳句,提升装逼指数~
  6. 程序员的10个快乐瞬间!
  7. 大疆口袋相机美颜怎么设置_灵眸Osmo口袋云台相机评测-大疆灵眸云相机使用说明...
  8. 基于框架编写驱动代码
  9. Mybatis 算术逻辑运算
  10. python 中的pickle库