Синглтон-паттерн Objective-C в iOS 5+
Я читал много тем и статей в блогах о том, как реализовать синглтон в target-c, некоторые из них, возможно, немного устарели (2010 год или более ранняя версия), и кажется, что у людей разные мнения по этому вопросу. .. Есть ли у Apple документация по реализации синглтона? Я не мог найти это. Если так, может кто-нибудь сказать мне, где?
Мне нужен синглтон для класса, который имеет как публичные, так и приватные переменные. В настоящее время это реализация, которую я имею для такого класса:
@interface MySingleton ()
@property (strong, nonatomic) NSString *state;
@end
@implementation MySingleton
@synthesize state = _state;
@synthesize count = _count;
static MySingleton *sharedObject = nil;
+ (MySingleton *)sharedInstance
{
static dispatch_once_t _singletonPredicate;
dispatch_once(&_singletonPredicate, ^{
sharedObject = [[super allocWithZone:nil] init];
});
return sharedObject;
}
+ (id)allocWithZone:(NSZone *)zone
{
return [self sharedInstance];
}
Должен ли это быть рекомендуемый способ? И как я должен инициализировать переменные экземпляра, public и private?
Еще одна проблема, которую я хотел бы прояснить в отношении синглтона: это вызовет утечку памяти? Рекомендуется ли использование синглетонов в iOS?
Спасибо