可能重複:
What's the correct method to subclass a singleton class in Objective -C?Singleton設計模式
@implementation Singleton
- (id)init
{
self = [super init];
if (self) {
// Initialization code here.
}
return self;
}
+(Singleton *)singleton
{
static Singleton * singleton;
if (singleton == nil)
{
singleton =[[Singleton alloc]init];
}
return singleton;
}
@end
現在到目前爲止good.Actually,初始化部分應該是私有的。但我稍後會擔心的。
現在,假設我想要繼承單例類。我應該如何修改它?
也讓我們來看看這裏的代碼:
+(Singleton *)singleton
{
static Singleton * singleton;
if (singleton == nil)
{
singleton =[[Singleton alloc]init];
}
return singleton;
}
我應該修改,以
+(self *)singleton
{
static self * singleton;
if (singleton == nil)
{
singleton =[[self alloc]init];
}
return singleton;
}
讓單身方法總是返回子類而不是父類
嗯,我得到編譯錯誤
現在我知道一個子類是一個「父」 。所以子類化單例是沒有意義的。
如果我不需要嚴格的單身人士,那麼呢?
我想
@interface CLASSA:單 @interface CLASSB:singelton
所有具有引用ClassA和ClassB的單一實例的單方法?
所以是你的問題(因此標題)更好地表述爲「如何創建可被繼承單身?」或者「如何繼承一個單身人士?」? – jball
如果你繼承它,它不再是一個單身......一個孩子IS-A的父母。 – duffymo
可能的重複[什麼是在Objective-C中繼承單例類的正確方法](http://stackoverflow.com/questions/3394033/whats-the-correct-method-to-subclass-a-singleton-class -in-目標c)。另外:http://stackoverflow.com/questions/1605083/how-do-i-make-other-classes-derive-from-a-singleton-class/1605127#1605127 –