可能重复:
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 –