我有以下結構。 我得到了class B
,它符合protocol A
。 protocol A
定義了一個指定的初始化程序,即-(instancetype)initWithInt:(int)count
。指定的初始化程序應該只在'super'上調用指定的初始化程序當使用協議時?
但是,當我去執行標準-(instancetype)init
在class B
並使其使用指定初始化程序,它也在類B中實現,我得到警告「指定的初始化程序應該只調用指定的初始化程序'超' 「,而我指定的初始化程序(其中IMO爲initWithInt
)從不會在super上調用任何指定的初始化程序。
@protocol A
{
(instancetype) init;
(instancetype) initWithInt:(NSUInteger)count;
}
@interface B : NSObject <A>
@implementation B
- (instancetype) init {
return [self initWithInt:0];
}
- (instancetype) initWithInt:(NSUInteger)count {
self = [super init];
return self;
}
任何想法爲什麼編譯器在這種特定情況下省略此警告?
這是什麼問題? – matt
@matt剛剛更新了問題部分。 – sramij
你打算如何使用這個協議? – Willeke