Как правильно реализовать ARC-совместимый и `alloc init` безопасный класс Singleton? [Дубликат]
На этот вопрос уже есть ответ здесь:
Как реализовать синглтон Objective-C, совместимый с ARC? 10 ответовЯ видел нить безопасную версию
+(MyClass *)singleton {
static dispatch_once_t pred;
static MyClass *shared = nil;
dispatch_once(&pred, ^{
shared = [[MyClass alloc] init];
});
return shared;
}
но что будет, если кто-то просто позвонит[MyClass alloc] init]
? Как заставить его вернуть тот же экземпляр, что и+(MyClass *)singleton
метод?