我也跟着教程來實現辛格爾頓和它工作正常。下面是代碼:內實例方法如何靜態變量的作品 - 辛格爾頓
@implementation DKSingle
static DKSingle *dKSingle = nil;
+(id)dKSingleInstance{
if (!dKSingle) {
dKSingle = [[DKSingle alloc]init];
}
return dKSingle;
}
-(id)init{
if (!dKSingle) {
dKSingle = [super init];
}
return dKSingle;
}
@end
我的問題是dKSingle是一個靜態變量,那麼怎麼來它的工作原理在即時方法 init中。請幫我理解。
您可以在實例方法中使用靜態變量。但是,反過來並不正確。您不能以靜態方法訪問實例變量。 – CrimsonChris
你是正確的老師!這些是我在OOP期間錯過的概念。可以分享任何網站,書籍,我可以從OOP學到所有東西。 – dinesh
http://www.raywenderlich.com/45940/intro-object-oriented-design-part-1 – CrimsonChris