Ho letto molti thread e articoli di blog su come implementare un singleton in ogg-c, alcuni dei quali forse sono un po 'deprecati (anno 2010 o precedenti), e sembra che le persone abbiano opinioni diverse riguardo a questo problema ... Apple ha documentazione sull'implementazione di un singleton? Non riuscivo a trovarlo. Se così fosse, qualcuno potrebbe dirmi dove?Pattern singleton Objective-C in iOS 5+
Ho bisogno di un singleton per una classe che ha alcune variabili sia pubbliche che private. Attualmente, questa è l'implementazione che ho per tale classe:
@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];
}
Dovrebbe essere questo il modo consigliato? E come devo inizializzare le variabili di istanza, pubbliche e private?
Un altro problema che vorrei chiarire su Singleton è: genererà una perdita di memoria? L'uso di singleton è effettivamente raccomandato in iOS?
Grazie
Infatti ... funzionerebbe in iOS4? (Come una curiosità.) – Fattie
E può essere utile, si noti la presentazione eccezionalmente semplice del codice nella risposta popolare qui: http://codereview.stackexchange.com/questions/19829/objective-c-singleton-implementation – Fattie