gpt4 book ai didi

objective-c - 我可以像java c#那样在objective-c中实现真正的单例吗?

转载 作者:行者123 更新时间:2023-11-28 17:55:00 25 4
gpt4 key购买 nike

init 方法是在 NSObject 类中声明的,因此客户端代码可以创建我的单例类的新实例,有什么方法可以实现真正的单例,这样客户端就无法创建新实例。

最佳答案

只需这样做:

 static SingletonClass  *singleton;

+ (SingletonClass *)sharedInstance
{
@synchronized(self) { //For thread safety
if (singleton == nil) {
[[self alloc] init];
}
return singleton;
}
}


-(id)init
{
if (singleton) { //This way init will always return the same instance
return singleton;
}
self = [super init];
if (self) {
singleton = self;
}
return singleton;

}

关于objective-c - 我可以像java c#那样在objective-c中实现真正的单例吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12974815/

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