Мой метод + (void) инициализирован не вызывается, и я очень новичок в Objective C. Код находится в книге iPhone Game Development, и я должен вызвать метод явно для работы. Код в файле .m - это:
ResourceManager *g_ResManager;
@implementation ResourceManager
//initialize is called automatically before the class gets any other message, per from http://stackoverflow.com/info/145154/what-does-your-objective-c-singleton-look-like
+ (void) initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
g_ResManager = [[ResourceManager alloc] init];
}
}
...
@end
Но в файле .h выполняется внешнее объявление переменной:
extern ResourceManager *g_ResManager; //paul <3 camel caps, hungarian notation, and underscores.
@interface ResourceManager : NSObject {
...
}
...
@end
Я пробовал все (удалить внешний, поставить статику в объявлении .m) и всегда получать ошибки компиляции. Вышеприведенный код компилируется, но инициализация метода никогда не вызывается (поместите точку останова, чтобы увидеть это).
Некоторые подсказки?