-----Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
static 修饰局部变量:延长布局变量的生命周期
static 修饰全局变量:当前变量只能在当前文件中使用
static 修饰函数: 函数只能在当前文件中使用
static关键字
(在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值)变量为静态变量,位于程序的全局数据区若作全局变量,可将声明放在实现文件的开始部分
在OC中static关键字使用误区
使用static修饰实例变量是不被允许的
使用static修饰了方法,也是错误的
在OC中static可以怎么用?
1)可以定义全局变量,但是只能在Dog.m中使用
Dog.h文件内容#pragma mark 狗类的声明
static int m=10; //此句话也可以放到.m中
@interface Dog:NSObject
{
int _speed;
}
-(void)run;
@end
{
int _speed;
}
-(void)run;
@end
Dog.m文件内容
#import "Dog.h"
#pragma mark 狗类的实现
@implementation Dog
-(void)run{
NSLog(@"m = %d",m);
}
@end
#import "Dog.h"
#pragma mark 狗类的实现
@implementation Dog
-(void)run{
NSLog(@"m = %d",m);
}
@end
2)可以定义局部变量和C语言一样,延长变量生命周期
dog.m#import "Dog.h"
#pragma mark 狗类的实现
@implementation Dog
-(void)run{
//定义局部静态变量 m
static int m=10;
NSLog(@"m = %d",m);
m++;
}
@end
main.m
注意
Static型全局变量的可见性,局限于当前.m文件
其他的文件中的类,无法访问到该变量