我查看过这里发布的大多数问题,但没有一个答案非常清楚,我对全局变量充满信心。
我在想的全局变量是,只是在
中声明的变量 @interface HelloWorldLayer : CCLayer
{
//global variable goes here
NSString *string;
}
现在我可以在任何方法中使用此变量。
这是正确的还是我错了。
答案 0 :(得分:5)
这不是“全局”变量。它是一个变量,仅作为HelloWorldLayer对象的实例成员变量可用。 对于xcode中的全局变量,请参阅此解决方案Global variable in Objective-C program
答案 1 :(得分:1)
这不称为全局变量。这是一个实例变量。但是,您可以在HelloWorldLayer实现中的每个实例方法中访问它。
答案 2 :(得分:1)
请查看here
您创建一个静态变量并通过静态访问器使用它。附:你必须导入存储静态变量#import "staticVarClass.h"
的类,无论你需要在哪里使用它。
答案 3 :(得分:1)
如果你想在HelloWorldLayer之外访问它,你应该创建一个这样的属性
HelloWorldLayer.h
@interface HelloWorldLayer : CCLayer
{
NSString *string;
}
// Declare variable to be used outside the layer here
@property(nonatomic, copy) NSString* string;
@end
HelloWorldLayer.m
@implementation HelloWorldLayer
@synthesize string; // This matches the property "string" with the variable "string"
...
@end
答案 4 :(得分:1)
要在C#中创建一个全局变量,有关如何执行此操作的答案在此处有关于Stackoverflow的另一篇文章:Global variable in Objective-C program
它声明:
对于标准全局变量,在终止并重新启动应用程序时不持久, 将其添加到您选择的头文件(* .h)中:
extern NSInteger MYGlobalVariable;
然后将其放在实现文件(* .m,*。c,* .cpp)中:
MYGlobalVariable = 0; // Or ny other default value.
这就是你如何做一个面包和黄油的全局变量。
祝你的项目好运。
答案 5 :(得分:0)
如果你想要一个C全局变量(可以在整个应用程序中访问),你应该在任何接口声明或.h文件之外,以及在一个实现或.c文件中声明它。您必须在其他文件中将其声明为extern以使其在其他文件中可见。确保在声明中初始化它,因为默认情况下它不会。
请注意,以这种方式将Objective C对象指针(例如NSString *)声明为C全局变量会增加以不可重用或难以调试的代码结束的可能性。
答案 6 :(得分:0)
实际上,根据我的r& di得到的,通过使用extern,我们必须创建一个实例,但最后的事情是#define你的变量并且可以访问任何你想要的地方,而不需要创建实例和其他东西直接使用变量名称....