小编典典

在 Objective-C 中使用 GCD 的 dispatch_once 创建单例

all

如果您可以针对 iOS 4.0 或更高版本

使用 GCD,它是在 Objective-C(线程安全)中创建单例的最佳方法吗?

+ (instancetype)sharedInstance
{
    static dispatch_once_t once;
    static id sharedInstance;
    dispatch_once(&once, ^{
        sharedInstance = [[self alloc] init];
    });
    return sharedInstance;
}

阅读 87

收藏
2022-04-04

共1个答案

小编典典

这是创建类实例的完全可接受且线程安全的方法。从技术上讲,它可能不是“单例”(因为这些对象中只能有 1 个),但只要您只使用该[Foo sharedFoo]方法访问该对象,这就足够了。

2022-04-04