目标c从另一个文件访问全局变量

Bac*_*tnz 0 objective-c

可能重复:
Cocoa/Objective-C中的全局变量?
在目标c中声明一个全局变量的问题

我在我的.h中定义了一个全局变量,其他类通过包含类".h"文件来访问它.这很好,从我收到的建议,我现在已经将变量移动到".m",因为我被告知,否则每个包含.h的类都将重新声明它,这是正确的吗?但现在我的其他文件无法访问它,我假设我不应该包含".m"文件....我应该使用#define预处理器,所以只定义一次?我该怎么做呢?

mou*_*iel 6

您可以在.h文件中声明变量.

globals.h:

extern int myGlob;
Run Code Online (Sandbox Code Playgroud)

您无法在a中定义变量.h,您必须在.c或中 定义它.m:

globals.m:

int myGlob;
Run Code Online (Sandbox Code Playgroud)

您可以globals.h从需要访问的任何其他文件导入myGlob:

myApp.m:

#import "globals.h"

main() {
    myGlob++;
}
Run Code Online (Sandbox Code Playgroud)