首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有类层次的Objective C Singleton

具有类层次的Objective C Singleton
EN

Stack Overflow用户
提问于 2012-11-10 01:09:33
回答 5查看 1.1K关注 0票数 0

我有一个类Parent和一个类Child。子代派生自父代。我只实例化了child类,父类从不直接初始化,只由子类初始化。我至少需要父母都是独生子女。如果这不起作用,那么Child是一个独生子女也没问题。我尝试了以下方法,但没有将其更改为单例:

代码语言:javascript
复制
static MySingleton *sharedSingleton;

+ (void)initialize
{
    static BOOL initialized = NO;
    if(!initialized)
    {
        initialized = YES;
        sharedSingleton = [[MySingleton alloc] init];
    }
}

Child类调用super来实例化父对象。你能帮我一下吗?

编辑:我为我的解决方案(架构)添加了一些背景信息:我有一个web服务客户端,它连接到一个web服务。我有一个基类(Parent),它包含有关连接的信息(已验证、如何连接等),并且我有从这个基类派生的不同子类。需要不同的子类,一个子类负责一组web服务逻辑,另一个子类负责另一组web服务逻辑。问题是,我希望连接信息是单例的(因为它们都只使用一个连接,而不是多个)。

EN

Stack Overflow用户

发布于 2012-11-10 01:29:06

更安全的线程选项应该是这样的:

代码语言:javascript
复制
+(MySingleton *)singleton {
    static dispatch_once_t pred;
    static MySingleton *shared = nil;

    dispatch_once(&pred, ^{
        shared = [[MySingleton alloc] init];
    });
    return shared;
}
票数 1
EN
查看全部 5 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13312700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档