我的方法 + (void)initialized 没有被调用,我在 Objective C 中非常新手。这段代码来源于书本《iPhone 游戏开发》,我必须显式地调用该方法才能让它工作。.m 文件中的代码如下:
ResourceManager *g_ResManager;
@implementation ResourceManager
//initialize is called automatically before the class gets any other message, per from https://dev59.com/JHVC5IYBdhLWcg3w7Vxq
+ (void) initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
g_ResManager = [[ResourceManager alloc] init];
}
}
...
@end
但是在 .h 文件中,对变量进行了外部声明:
extern ResourceManager *g_ResManager; //paul <3's camel caps, hungarian notation, and underscores.
@interface ResourceManager : NSObject {
...
}
...
@end
我尝试了各种方法(去掉了外部引用,在.m声明中加入static),但总是出现编译错误。上面的代码可以编译,但initialize方法从未被调用(我放了一个断点来查看)。
有什么线索吗?