黑马程序员-OC语言-关于OC中的static关键字使用(听课笔记)

时间:2022-01-19 00:39:40

-----Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


static 修饰局部变量:延长布局变量的生命周期
static 修饰全局变量:当前变量只能在当前文件中使用
static 修饰函数:   函数只能在当前文件中使用


static关键字

(在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值)变量为静态变量,位于程序的全局数据区
若作全局变量,可将声明放在实现文件的开始部分

在OC中static关键字使用误区

使用static修饰实例变量是不被允许的

黑马程序员-OC语言-关于OC中的static关键字使用(听课笔记)


使用static修饰了方法,也是错误的

黑马程序员-OC语言-关于OC中的static关键字使用(听课笔记)


在OC中static可以怎么用?

1)可以定义全局变量,但是只能在Dog.m中使用

Dog.h文件内容
#pragma mark 狗类的声明
static int m=10; //此句话也可以放到.m中
@interface Dog:NSObject
{
int _speed;
}
-(void)run;
@end

Dog.m文件内容
#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

黑马程序员-OC语言-关于OC中的static关键字使用(听课笔记)

注意
Static型全局变量的可见性,局限于当前.m文件
其他的文件中的类,无法访问到该变量