Tag: 单身人士

iOS中的单例Objective C不会阻止多个实例

我知道有几个线程,但没有回答我的问题。 我已经实现了像这样的单身类(意识到关于单身人士的争议): + (MyClass*) sharedInstance { static MyClass *_sharedInstance = nil; static dispatch_once_t oncePredicate; dispatch_once(&oncePredicate, ^{ _sharedInstance = [[MyClass alloc] init]; }); return _sharedInstance; } – (instancetype)init{ self = [super init]; if (self) { //setup code } return self; } 我试着实例化一个不同的对象,并用'=='与sharedInstance返回的对象进行比较,确实不同。 问题: 不应该创build单个类的多个对象是不可能的? 这不是重点吗? Java中的单例实现可以防止它。 如果是的话,怎么样? 我应该做一个设置方法,并调用它,而不是执行init和做? 这是正确的实施?