背景-私のiPhoneアプリにはカスタムUITableViewControllerがあります-既存の"(id)initWithStyle:(UITableViewStyle)style"メソッドを拡張カスタムメソッドに拡張することで、必要な構成を渡すつもりでした。
質問-このカスタムコントローラークラスのユーザーが、initWithStyleやその他のinitメソッドではなく、カスタムinitメソッドのみを呼び出すことができるようにするための最良の方法は何ですか?
背景-私のiPhoneアプリにはカスタムUITableViewControllerがあります-既存の"(id)initWithStyle:(UITableViewStyle)style"メソッドを拡張カスタムメソッドに拡張することで、必要な構成を渡すつもりでした。
質問-このカスタムコントローラークラスのユーザーが、initWithStyleやその他のinitメソッドではなく、カスタムinitメソッドのみを呼び出すことができるようにするための最良の方法は何ですか?
私は通常これを文書[self doesNotRecognizeSelector:_cmd]
化し、使用することを意図していないinitメソッドを呼び出します。
併せて、メソッドに非推奨のマークを付けると(iPhone Objective Cヘッダーファイルで関数に非推奨のフラグを立てる方法を参照)、実行時の驚きを防ぎ、コンパイル時に警告を受け取ります。
使用したくないinitメソッドをオーバーライドして、そこで例外を発生させることができます。
それらをオーバーライドして、指定されたイニシャライザーで初期化することもできます。
また、ドキュメントで指定する必要があります。