Вот еще один способ настроить ваш общий экземпляр.Безопасность потоков обеспечивается средой выполнения, и код очень прост.Обычно так я настраиваю свои синглтоны.Если одноэлементный объект использует много ресурсов, но может не использоваться, тогда подход dispatch_once работает хорошо.
static MyClass *sharedInstance = nil;
+ (void) initialize
{
sharedInstance = [[MyClass alloc] init];
}
+ (MyClass*)sharedInstance
{
return sharedInstance;
}