我有一个类Parent和一个类Child。子代派生自父代。我只实例化了child类,父类从不直接初始化,只由子类初始化。我至少需要父母都是独生子女。如果这不起作用,那么Child是一个独生子女也没问题。我尝试了以下方法,但没有将其更改为单例:
static MySingleton *sharedSingleton;
+ (void)initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
sharedSingleton = [[MySingleton alloc] init];
}
}Child类调用super来实例化父对象。你能帮我一下吗?
编辑:我为我的解决方案(架构)添加了一些背景信息:我有一个web服务客户端,它连接到一个web服务。我有一个基类(Parent),它包含有关连接的信息(已验证、如何连接等),并且我有从这个基类派生的不同子类。需要不同的子类,一个子类负责一组web服务逻辑,另一个子类负责另一组web服务逻辑。问题是,我希望连接信息是单例的(因为它们都只使用一个连接,而不是多个)。
发布于 2012-11-10 01:29:06
更安全的线程选项应该是这样的:
+(MySingleton *)singleton {
static dispatch_once_t pred;
static MySingleton *shared = nil;
dispatch_once(&pred, ^{
shared = [[MySingleton alloc] init];
});
return shared;
}https://stackoverflow.com/questions/13312700
复制相似问题