object-c的"+"类似于C++中的静态函数,它可以访问由static声明的变量。实例如下:

1. 代码:

//ClassA.h

#import <Foundation/NSObject.h>

static int count;

@interface ClassA: NSObject

+(int) initCount;
+(void) initialize;
@end

////ClassA.m

#import "ClassA.h"

@implementation ClassA
-(id) init {
    self = [super init];
    count++;
    return self;
}

+(int) initCount {
    return count;
}

+(void) initialize {
    count = 0;
}
@end

//main.m

#import "ClassA.h"
#import <stdio.h>

int main( int argc, const char *argv[] ) {
    ClassA *c1 = [[ClassA alloc] init];
    ClassA *c2 = [[ClassA alloc] init];

// print count
    printf( "ClassA count: %i\n", [ClassA initCount] );
    
    ClassA *c3 = [[ClassA alloc] init];

// print count again
    printf( "ClassA count: %i\n", [ClassA initCount] );

[c1 release];
    [c2 release];
    [c3 release];
    
    return 0;
}

运行结果:

ClassA count: 2
ClassA count: 3

2.说明:

(1)initialize 是被自动调用的,而且只调用一次;

(2)initCount可以访问count。

object-c的静态变量(static)相关推荐

  1. 静态变量static(C)

    static static是C语言关键字之一. static 数据类型用来给变量创建永久存储空间.静态变量在函数间调用时保持他们的值不变. 它的语法结构为: static c_type data_na ...

  2. 静态变量(static variable)

    静态变量(static variable) 我们可以创建具有 块作用域.无链接.静态存储期 的局部静态变量.其与局部自动变量一样,具有相同的作用域,但是程序在离开它们所在函数后,静态变量不会消失,在多 ...

  3. java 静态全局变量_静态变量static和全局变量global

    静态变量static , 全局变量global 静态变量 在java也叫类变量从名字可以看出它是属于某个类的而不是类的实例.它的关键字是static存储在静态存储区,当程序执行,类的代码被加载到内存, ...

  4. Systemverilog 静态变量 (static) 与 动态变量(automatic) 区别

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 静态变量 Static 动态变量 Automatic 一.静态变量和动态变量的定义 二.静态变量与动态变量应用举例 总结 静 ...

  5. C语言静态变量static的分析

    对C语言静态变量static分析,解释了static为什么在局部变量里面定义的时候不会随着函数执行完毕而销毁,也稍微用解释了静态存储区和动态存储区的小知识 文章目录 学习static前要先认识 sta ...

  6. 静态变量static的理解

    static static是C语言关键字之一. static 数据类型用来给变量创建永久存储空间.静态变量在函数间调用时保持他们的值不变. 它的语法结构为: static c_type data_na ...

  7. c++ 类中静态变量 static

    类中的静态变量 由于声明为static的变量只被初始化一次,因为它们在单独的静态存储中分配了空间,因此类中的静态变量由对象共享.对于不同的对象,不能有相同静态变量的多个副本.也是因为这个原因,静态变量 ...

  8. php的静态变量static在函数内部

    静态变量放在函数内 <?phpheader('content-type:text/html;charset=utf-8');function fun(){static $num=1;$num++ ...

  9. 搞懂静态变量static

    文章目录 1.什么是static? 2.static关键字的作用是什么? 3.静态变量和非静态变量的区别? 4.static可以修饰局部变量吗? 5.可以通过this访问静态变量吗? 6.静态方法能否 ...

  10. Java中的类变量(静态变量static的具体用法快速入门))

    文章目录 问题分析 修改过后的代码 运行结果 先看一段代码 package study_static;public class Childgame {public static void main(S ...

最新文章

  1. 爱创课堂每日一题第五十二天- js延迟加载的方式有哪些?
  2. jackson 反序列化string_java – 使用Jackson对数组进行反序列化
  3. [Python图像处理] 十.形态学之图像顶帽运算和黑帽运算
  4. EBB-4、忘记root密码;文件,目录权限
  5. android8 通知呼吸灯_手机呼吸灯那么好用!为什么要取消它?没有呼吸灯真的好吗?...
  6. 堆 堆栈 java_java的栈和堆
  7. 蓝天集团董事长郎凤娥专访
  8. The package lists or status file could not be parsed or opened.
  9. 实现深拷贝的常用方法
  10. sqlserver查询本周、上周、今天、昨天、本月、上月数据
  11. 清北学堂模拟赛d1t5 拍照(photo)
  12. Chrome快捷键, Mac 下 Chrome 浏览器 快捷键
  13. i2c-tools安装与使用总结
  14. 深度学习的视觉跟踪:一个全面的调查
  15. dxf转换html5,移动端CAD版本转换如何输出DXF格式-迅捷CAD转换器
  16. 【阿里云】视频点播开通与配置
  17. php spider视频教程,phpspider的简单使用
  18. JavaWeb项目间隔刷新出现412
  19. android听筒+扬声器自动切换,Android 听筒扬声器切换(多机型兼容、兼容5.0以上)...
  20. Transformer课程 业务对话机器人Rasa 3.x 生成自然语言理解NLU数据

热门文章

  1. JS原生读取 本地 JSON
  2. Pygame下载教程
  3. 基坑监测日报模板_静兴项目部工程日报(2020/7/7)
  4. java将录音转换成文字,除了把录音转换成文字,原来录音转文字助手还有这么多实用功能...
  5. python 坦克大战
  6. linux redis命令客户端,Redis客户端
  7. 《Redis开发与运维》学习第三章
  8. 11.3.3 BINARY 和 VARBINARY 类型
  9. 三星手機android6.01,三星SM-C7000固件刷机包6.01rom线刷包Root权限驱动
  10. win10打开蓝牙_WIN10蓝牙不能使用,开启蓝牙后不能识别到其它设备怎么办?