外部全局变量

外部全局变量即该变量不仅可以在所定义的文件内被访问,也可以在其他文件中被访问。凡是定义在函数或方法之外的变量(除静态变量之外)都是外部全局变量。

若一个变量是外部全局变量,则该变量最好定义在源文件(.m)的起始位置,这样可以为了更好的维护。

看个例子:

//Test.m 文件

//定义一个外部全局变量
NSString * name;
@implementation Test:NSObject
-(NSString *) getName{
      //直接使用
      return name;
}
@end

该例子定义了一个类型是NSString名字为name的全局外部变量,那其他文件怎么使用该变量呢?这时候就得用到关键字extern,使用语法:

extern type varName;

上面语法的意思是:即将使用一个已经定义好的外部全局变量,假如在TestVar.m文件中使用Test.m中定义的name,写法是这样的:

//TestVar.m

//整个文件都可以使用该变量,若只是该文件中的一个方法使用,
//没必要这样声明,直接在方法里面声明
extern NSString *name
@implementation TestVar
@end

也可以在头文件中,把全局变量用extern进行声明,这样就省去在别的文件中使用时,再次进行声明了,例子:

//Test.h  Test头文件

extern NSString *name
@interface Test:NSObject
@end

其他文件直接import Test.h文件即可使用name外部全局变量。

results matching ""

    No results matching ""