init系メソッドの中では以下のようにnilチェックをするコードを書くことが多い。
- (id)init{ self = [super initWithNibName:nil bundle:nil]; if (self) { // 初期化 } return self; }
なんでselfのnilチェックが必要なのかよくわかっていなかったので調べた。
ビルトインクラスの中には、正しく初期化できなかった時にinitメソッドがnilを返す仕様のものがあるらしい。
そういうクラスがあっても、例外を吐いて落ちないようにするためにnilチェックをするらしい。
であれば、initを呼び出す側のコードでもnilチェックをして、nilの場合はエラー処理するようにしないといけないと思われる。(ごめんなさいやってませんでした)
参考:In Objective-C why should I check if self = [super init] is not nil? - Stack Overflow