更新时间:2022-09-02 15:35:01
#import <Foundation/Foundation.h> #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { Person *p = [Person new]; // static p; // 不能修饰对象. } return 0; } //Person.h #import <Foundation/Foundation.h> @interface Person : NSObject { // static int _age; static 不能修饰成员变量 } //static - (void)test; // 不能修饰方法 @end
跟C语言中的用法一样。
11.OC中的Static关键字使用 static 修饰局部变量:延长布局变量的生命周期 . static 修饰全局变量:当前变量只能在当前文件中使用. static 修饰函数:函数只能在当前文件中使用 .
1.关于OC中的static关键字使用 static关键字 (在变量声明前加上关键字static,可以使局部变量保留多次调用一个方法所得的值)变量为静态变量,位于程序的全局数据区,若作全局变量,可将声明放在实现文件的开始部分.
2.在OC种static关键字使用误区 使用static修饰实例变量是不被允许的 使用static修饰方法也是不被允许的 3.使用static@interface和@end之间是不被允许的(写局部变量本来就不被允许) 3.static的使用场合: 1)可以定义全局变量,但是只能在Dog.m中使用 // 狗类的声明 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 int mian(){ Dog *d = [Dog new]; [d run]; [d run]; [d run]; return 0; } //注意 Static型全局变量的可见性,局限于当前.m文件,其他的文件中的类,无法访问到该变量。
本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/5310928.html,如需转载请自行联系原作者