IOS开发之---static变量
来源:互联网 发布:不知为不知是知也的知 编辑:程序博客网 时间:2024/06/03 11:26
转自:http://blog.csdn.net/wbw1985/article/details/7874688
Objective-C 支持全局变量
主要有两种实现方式:
(1)第一种和C/C++中的一样, 使用"extern"关键词;
(2)另外一种就是使用单例实现。
(比如我们经常会把一个变量放在AppDelegate里面作为全局变量来访问, 其中AppDelegate就是一个单例类)在Objective-C中如何实现像C++中那样的静态成员变量呢?
你需要做的是在一个类A的implementation(.m或者.mm)文件中定义一个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进行访问,无须创建实例。
MyClass.h
警告: static 写在interface外面编译是没有错误的,但是编译器会报警告,这么说这样的写法是不被编辑器认可的。
错误:static 写在interface里面会直接报错,显然这样的语法是不被认可的。
+(void) addCount; 各位朋友们注意一下这法方法前面的+号。 它的意思是标致这个方法为静态方法,标志+号后不用创建这个对象通过类名可以直接调用这个静态方法。 而之前方法前用过的-号,标志-号后的方法必须通过本类的对象或者在本来中才可以使用。
- #import <Foundation/Foundation.h>
- //警告
- //static int sCount ;
- @interface MyClass : NSObject
- //static int sCount;
- }
- +(void) addCount;
- @end
MyClass.m
static关键字声明的变量必须放在implementation外面,或者方法中,如果不为它赋值默认为0,
它只在程序开机初始化一次。
+(void)addCount 因为标识了+号,所以这个方法无需使用这个类的对象调用。
直接使用类名方可调用这个方法。
#import "MyClass.h"
static int sCount = 100;
@implementation MyClass
+(void)addCount
{
sCount ++;
NSLog(@"静态整型变量的值为:%d", sCount);
}
@end
http://www.cocoachina.com/bbs/simple/?t60419.html
- IOS开发之---static变量
- IOS开发之---static变量
- IOS开发之---static变量
- IOS开发之static变量
- iOS开发之---static关键词详解
- Android开发之警惕static变量使用
- ios高效开发-如何正确使用const,static,extern
- 黑马程序员-IOS开发之--C语言基础一数据类型,常量,变量
- iOS static变量
- iOS 静态变量static
- iOS开发中static变量的三大作用
- iOS开发--基础知识之`const`. `static`常量.
- iOS -实例变量
- 黑马程序员-IOS开发之--Object-c--关键核心语法(点语法,变量,编译特性)
- iOS开发之c语言基础-变量
- 学习IOS-变量定义
- iOS开发笔记之十六——static关键字
- IOS开发之ASIHTTPRequest-身份验证
- Java将Unix时间戳转换成普通日期型的函数
- list不支持通用的sort算法
- ios使用zxing遇到的问题
- cocos2d-x【小菜在学习】如何增加光晕效果以及CCSpriteFrameCache使用
- Android仿新浪微博欢迎界面的实现
- IOS开发之---static变量
- Qt中通过设置位图掩码生成异形控件
- Hdu 4517 小小明系列故事——游戏的烦恼
- 如何快速建立用户信任感
- ubuntu中打开终端的方法
- ASPxPivotGrid 属性
- static在oc中的使用
- C# - 函数参数的传递
- 西游记倒过来看其实更精彩