gpt4 book ai didi

iphone - Singleton:在哪里创建实例?

转载 作者:行者123 更新时间:2023-12-03 17:45:07 24 4
gpt4 key购买 nike

有人对使用...有任何偏好或意见吗

static id sharedReactor = nil;

+(id)sharedInstance {
if(sharedReactor == nil) sharedReactor = [[super allocWithZone:NULL] init];
return sharedReactor;
}

或:

static id sharedReactor = nil;

+(void)initialize {
if(sharedRandomReactor == nil) {
sharedRandomReactor = [[super allocWithZone:NULL] init];
}

+(id) sharedInstance {
return sharedReactor;
}

在我看来,使用 +(void)initialize 似乎更优雅,我只是好奇比我更有经验的人如何看待这两种方法?

加里

最佳答案

来自Mike Ash's site这是使用 Grand Central Dispatch 的另一种方法:

+ (id)sharedWhatever
{
static dispatch_once_t pred;
static Whatever *whatever = nil;
dispatch_once(&pred, ^{
whatever = [[Whatever alloc] init];
});
return whatever;
}

关于iphone - Singleton:在哪里创建实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2411507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com