說我有一個初始化基類中聲明爲NS_UNAVAILABLE:調用方法時未出現錯誤標記NS_UNAVAILABLE
@interface MyBase : NSObject
-(instancetype)init NS_UNAVAILEBLE;
@end
和派生類(我們就叫它MyDerived),在其.M嘗試以實施初始化(可以說意外,因爲該方法並不實際可用):
@implementation MyDerived
-(instancetype)init {
self = [super init];
if(self){
}
return self;
}
即使在init被調用父類被標記爲NS_UNAVAILABLE仍然沒有警告或錯誤將被拋出代碼編譯好。
但是,如果我們在派生類中的.h聲明我們的init:
@interface MyDerived : MyBase
-(instancetype)init;
@end
然後將顯示一個錯誤!
這是預期的行爲,如果它是背後的原因是什麼?
'extends'?我錯過了什麼。 –
哎呀抱歉,剛開始輸入僞代碼並忘了更正 – J2K