私はコードベースを継承し、コンパイラがこのコードについて不平を言っているのを見つけました:
- (id)initWithFrame:(CGRect)frame {
// is this really missing??
// self = [super initWithFrame:frame];
self = [[[NSBundle mainBundle] loadNibNamed:@"DigitsKeyboardView" owner:self options:nil] firstObject];
return self;
}
XCode は、スーパー クラスで指定されたイニシャライザが呼び出されていないと文句を言います。スーパーへの呼び出しのコメントを外すと、エラーは明らかに消えます。しかし、アプリケーションはかなりの数の iOS バージョンで行が欠落していることを気にしなかったので、これがむしろ学術的な要件なのか、それともこの場合は間違っているのかさえわかりません.
loadNibNamed
メソッドは a で呼び出され、self
上書きされますself
。これにより、すぐに目に見えない問題が発生する可能性がありますか?
このような場合の適切な実装は何ですか?