全局变量未初始化

时间:2014-01-07 15:59:56

标签: objective-c global-variables

我已经找到了几个解释如何解决这个问题,但没有一个(我发现)很简单,我不能理解。 Objective-c的新手。

我希望在目标c中访问多个类中的数组。我试图在“Globals.h”类中创建一个全局变量(我知道效率低下),在另一个类中初始化它们,并在另一个类中访问该信息。

继承我所拥有的。

在Globals.h中

#import <UIKit/UIKit.h>

extern NSArray *globalRows;

@interface Globals : NSObject

@end

ViewController.m

#import "Globals.h"

-(void)initGlobal{
    globalRows = [[NSArray alloc] initWithArray:rows];
}

编译器不想初始化变量,我不明白为什么。

编辑:
Globals类只保存全局变量,此类中没有可执行代码。

我在ViewController中初始化的原因是解析和存储所需信息的地方。

没有错误,代码根本无法编译。

EDIT2:

我似乎找到了一个非常好的解释here

1 个答案:

答案 0 :(得分:1)

NSObjects有一个+(void)initialize方法,你可以设置在启动时调用它。你也可以从main调用它。

尽管如此,更好的设计模式是让一个单例来保存您想要访问/使用的全局内容。同样地,将内容放在应用程序委托中会使它们成为全局的。