Я читал много потоков и статей в блогах о том, как реализовать singleton в objective-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];
}
Должен ли это быть рекомендованным способом? И как мне инициализировать переменные экземпляра, общедоступные и частные?
Еще одна проблема, которую я хотел бы прояснить в отношении синглтона: будет ли это причиной утечки памяти? Является ли использование синглтонов действительно рекомендуемым в iOS?
Спасибо