单身人士的最佳模式是什么?我经常使用
+ (SomeManager *)shared
{
static SomeManager * _SomeManager = nil;
if (_SomeManager) {
return _SomeManager;
}
_SomeManager = [[SomeManager alloc] init];
return _SomeManager;
}
这个帖子安全吗?如果没有,为了安全起见会很烫?
答案 0 :(得分:1)
使用来自的示例 Create singleton using GCD's dispatch_once in Objective C
+ (id)sharedInstance
{
static dispatch_once_t once;
static id sharedInstance;
dispatch_once(&once, ^{
sharedInstance = [[self alloc] init];
});
return sharedInstance;
}
清晰简单。谷歌下次会更好。
答案 1 :(得分:0)
我更喜欢使用GCD dispatch_once方法......
+ (id) sharedSomethingManager
{
static dispatch_once_t onceQueue;
static SomethingkManager *somethingManager = nil;
dispatch_once(&onceQueue, ^{somethingManager = [[self alloc] init]; });
return somethingManager;
}