Bunun gibi bir Singleton'um var:Arabirim Oluşturucusunda Singleton Kullanılsın mı?
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;
}
ancak şimdi bunu Interface Builder'dan başlatmak istediğimi anlıyorum. Xzx41
if (instance)
return instance;
gibi init
yöntemini kesmeyi düşünüyordum, bu kötü bir fikir mi? IB'yi +initialize
yönteminde önceden oluşturulan örneği almayı tercih ederim.
Bunu yapmak için ne yaptım Orijinal olarak bir Kakao uygulamasında olan bazı ağ istemcisi kodunun eklenti sürümü. Bir iş arkadaşının bir eklenti içinde olmasını istedim, böylece singleton rotasına gittim, böylece sadece ağ istemcisinin gerçek bir örneği (dahili olarak) olurdu. – ExitToShell
@invariant, soruyu sormuş olmamı ve sadece aptal olarak reddetmememi sağladığım için harika bir cevap. –
'+ alloc',' [[instance]] 'i döndürmelidir, çünkü 'alloc', sahip olunan bir nesneyi döndürür. –