在变量声明前加上关键字static可以使局部变量保留多次调用一个方法所得的值
static int a = 1;
声明一个整型静态变量 a 。这里是不需要初始化的,静态变量的初始值就是0;
经常我们需要计算执行一个方法的次数,我们会习惯性的使用一个实例变量来计数
例如 在interface中声明 index 后初始化为 0
然后在方法中index ++
- (void)showPageNumber
{
index ++;
NSLog(@"index = %d",index);
}
但是同时也能这样实现
- (void)showpagenumber
{
static int a;
a++;
NSLog(@"a = %d",a);
}
如果用个for 循环来调用这两个方法 可以发现都能够实现计数。第二种方法就是利用了static 关键字声明的变量在程序运行后只是初始化一次,后面再进来也不会再被初始化
那么这两种方法的区别是什么,
区别在于如果在 一个NSObject 类中去声明实现这个方法,然后在外界不管类实例化多少次,静态变量 a 都能够不断的计数,但是实例变量会在每次实例创建的时候重新初始化,