mam Singleton skonfigurować tak:Użyj Singleton In Interface Builder?
static Universe *instance;
+ (Universe *)instance { return instance; }
+ (void)initialize
{
static BOOL initialized = NO;
if(!initialized)
{
initialized = YES;
instance = [[Universe alloc] init];
}
}
- (id) init
{
self = [super init];
if (self != nil) {
self.showHistory = YES;
}
return self;
}
ale teraz zdaję sobie sprawę, że chciałbym oznacz ją z interfejsu Builder. Myślałam tylko o cięcia w sposobie init
jak tak
if (instance)
return instance;
jest to zły pomysł? Wolałbym, aby IB podniósł instancję już utworzoną w metodzie +initialize
.
Oto, co zrobiłem, aby wprowadzić wersja wtyczki kodu sieciowego klienta, który był pierwotnie w aplikacji Cocoa. Współpracownik chciał tego w wtyczce, więc poszedłem drogą singletonową, więc zawsze istniało tylko jedno rzeczywiste wystąpienie klienta sieciowego (wewnętrznie). – ExitToShell
@Newariant, świetna odpowiedź, która sprawia, że cieszę się, że zadałem to pytanie, a nie tylko odrzuciłem to jako głupie. –
'+ alloc' powinno zwrócić' [[self instance] retain] ', ponieważ' alloc' zwraca posiadany obiekt. –