Objective-C-ınit yöntemi özel yapmak mümkün mü?
(Özel) Objective-C sınıf -init
gizle yöntemi gerekiyor
Bunu nasıl yapabilirim?
CEVAP
unavailable
Başlık unavailable
öznitelik oluşturmak için ekleyinderleyici hataınit için herhangi bir çağrı.
-(instancetype) init __attribute__((unavailable("init not available")));
Eğer bir nedeni yok ise, sadece yazın __attribute__((unavailable))
__unavailable
bile
-(instancetype) __unavailable init;
doesNotRecognizeSelector:
doesNotRecognizeSelector:
NSİnvalidArgumentException yükseltmek için kullanıyorlar.“Çalışma zamanı sistemi bir nesneye ya da ileriye doğru cevap olamaz aSelector bir mesaj aldığı zaman bu yöntemi çağırır.”
- (instancetype) init {
[self release];
[super doesNotRecognizeSelector:_cmd];
return nil;
}
NSAssert
NSAssert
NSİnternalİnconsistencyException atmak ve mesaj göstermek için kullanın:
- (instancetype) init {
[self release];
NSAssert(false,@"unavailable, use initWithBlah: instead");
return nil;
}
raise:format:
raise:format:
kendi özel durum için kullanın:
- (instancetype) init {
[self release];
[NSException raise:NSGenericException
format:@"Disabled. Use [[%@ alloc] %@] instead",
NSStringFromClass([self class]),
NSStringFromSelector(@selector(initWithStateDictionary:))];
return nil;
}
[self release]
nesne zaten alloc
özetlenmiştir. çünkü ihtiyaç var. ARC kullanırken derleyici senin için arar. Her durumda, bir şey bilerek idamı hakkında ne zaman endişe.
objc_designated_initializer
init
belirlenmiş bir başlatıcı kullanımını zorlamak için devre dışı bırakmak istiyorsanız, bu durumda, bunun için bir öznitelik vardır:
-(instancetype)myOwnInit NS_DESIGNATED_INITIALIZER;
Bu başka bir başlatıcı yöntemi myOwnInit
DAHİLİ olarak çağırır sürece bir uyarı oluşturur. Ayrıntılar gelecek böyle büyük mükafat sürümü (sanırım) sonra Adopting Modern Objective-C yayınlanacaktır.
Yapmak özel bir tür "tie-mümkün&q...
viewController özel film şeridi ınit y...
&; Çalıştır > Objective-C özel duru...
Objective-C Özel Durumlar...
Nasıl objective-c / cocoa içinde modül...