Mam podstawową klasę Store
z wieloma metodami dziedziczonymi przez wszystkie sklepy. Każdy sklep to singleton. Teraz, każdy sklep definiuje własny niemal identyczny sposób:Objective-C - dynamiczny inicjator singleton?
+ (Store *)instance {
static SubStore *store = nil;
if (!store) {
store = (SubStore *) [[super allocWithZone:nil] init];
[store setupDefaults];
}
return store;
}
Czy jest jakiś sposób, by stworzyć metodę singleton w taki sposób, że metoda ta może być łatwo dodana do klasy bazowej i dziedziczone przez podklasy?
Próbowałem i nigdy nie znalazłem sposobu. Poza tym, aby być bezpiecznym dla wątków, powinieneś użyć bloku 'dispatch_once' zamiast' if (! Store) '. – Kevin
Podążałem za kodem książki. Zajrzę do dispatch_once. –