Wzór singletonu Objective-C w systemie iOS 5+

Czytałem wiele wątków i artykułów na blogu o tym, jak zaimplementować singleton w Celu-C, niektóre z nich mogą być nieco przestarzałe (rok 2010 lub wcześniej) i wydaje się, że ludzie mają różne opinie na ten temat. .. Czy Apple ma dokumentację dotyczącą wdrożenia singletonu? Nie mogłem go znaleźć. Jeśli tak, czy ktoś mógłby mi powiedzieć gdzie?

Potrzebuję singletonu dla klasy, która ma zarówno zmienne publiczne, jak i prywatne. Obecnie jest to implementacja, którą mam dla takiej klasy:

@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];
}

Czy powinien to być zalecany sposób? I jak powinienem zainicjować zmienne instancji, publiczne i prywatne?

Kolejną kwestią, którą chciałbym wyjaśnić na temat singletonu, jest: czy spowoduje to wyciek pamięci? Czy korzystanie z singletonów jest rzeczywiście zalecane w iOS?

Dzięki

questionAnswers(5)

yourAnswerToTheQuestion