Все, что я знаю о программировании, говорит, что методы экземпляра могут вызывать методы класса, но методы класса не могут использовать методы экземпляра вызова.Метод класса, успешно вызванный методом экземпляра
Это сообщение согласен ... Call instance method from class method
же чудесным образом метод класса sharedInstance
удается вызвать метод экземпляра init
. Что мне не хватает?
static iRpDatabase *sharedDatabase;
@implementation iRpDatabase
{
}
+(iRpDatabase*)sharedInstance
{
if(sharedDatabase == nil)
{
sharedDatabase = [[self alloc] init];
}
return sharedDatabase;
}
// this is an instance method, called from class method above.
-(id)init
{
if (self = [super init]) {
someInstanceVariable = XYZ;
[self someInstanceMethod];
}
return self;
}
Если вы посмотрите на свой пример (который мы можем увидеть в любом подклассе NSObject), вы увидите, что вы не вызываете init на себе, а на результат [self alloc], который является экземпляром. Best – Jef
@Jef Вы должны высказать свой вопрос на вопрос, а не этот ответ. – rmaddy