Objctive-C 全局变量
一,全局变量
1,在m文件中的所有方法,类定义和函数定义之外
例:Square.m中定义一个全局变量 , 在main.m中引用
Square.m代码如下:
////Square.m//Square////CreatedbyAppleon2017/9/9.//Copyright2017年Apple.Allrightsreserved.//#import"Square.h"intglobal_val=20;//定义一个全局变量@implementationSquare:Rectangle-(void)setSide:(int)s{[selfsetWidth:saddHeight:s];}-(int)side{returnself.width;}@end
使用外部的全局变量要使用extend关键字
main.m代码如下:
////main.m//Square////CreatedbyAppleon2017/9/9.//Copyright2017年Apple.Allrightsreserved.//#import<Foundation/Foundation.h>#import"Square.h"intmain(intargc,constchar*argv[]){@autoreleasepool{externintglobal_val;//ints=global_val;NSLog(@"我得到的全局变量为:%i",s);return0;}}
结果如下:
既然是全局变量,那么任何地方的修改都会在全局产生作用
进一步测试
Square.m代码:
////Square.m//Square////CreatedbyAppleon2017/9/9.//Copyright2017年Apple.Allrightsreserved.//#import"Square.h"intglobal_val=20;//定义一个全局变量@implementationSquare:Rectangle-(void)setSide:(int)s{[selfsetWidth:saddHeight:s];}-(int)side{returnself.width;}-(void)change{global_val=30;//此处改变全局变量的值}-(int)get_global{returnglobal_val;}@end
main.m
////main.m//Square////CreatedbyAppleon2017/9/9.//Copyright2017年Apple.Allrightsreserved.//#import<Foundation/Foundation.h>#import"Square.h"intmain(intargc,constchar*argv[]){@autoreleasepool{externintglobal_val;//ints=global_val;NSLog(@"我得到的全局变量为:%i",s);Square*mySquare=[[Squarealloc]init];[mySquarechange];NSLog(@"Squarechange后s:%i;;;;;的全局变量:%i",s,global_val);global_val=100;NSLog(@"s=%i,Square中的全局变量:%i",s,[mySquareget_global]);return0;}}
结果:
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。