0
我對編程知道的一切都表示,實例方法可以調用類方法,但類方法不能調用實例方法。成功稱爲實例方法的類方法
這個帖子同意... 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的任何子類上看到),你會發現你並沒有在self上調用init,而是根據[self alloc]的結果 - 這是一個實例。最佳 – Jef
@Jef你應該發表你的評論問題,而不是這個答案。 – rmaddy