commonConstruct
という名前のプライベートメソッドを定義することにより、さまざまな-(id)init
のクラスのフレーバ、つまりinit
、、initWithCoder
などでコードが重複しないようにしようとしています。Objective-C:同じ名前のプライベートスーパークラスメソッドへの意図しない呼び出しを避けるには?
このメソッドは、すべての初期メソッドのフレーバに共通して重い作業を行い、init
コンストラクタによって呼び出されます。
私が今持っている問題は、それはすなわち.m
ファイルで宣言され、invisible
ですが、初期化子ヘルパー(「commonConstruct」)のために同じ命名対流を使用して派生クラスで基本クラスは、派生クラスのcommonConstruct
を呼び出すということです、.h
ファイルではありません。
ただし、ランタイムは、オーバーロードされたcommonConstructを見つけて、それ自身のメンバー関数ではなく実行します。
各サブクラスの初期化ヘルパーに異なる名前を使用する以外の方法はありますか。
つまり、Objective-C
のメンバ関数を「非仮想」、つまり遅延(ランタイム)はなくコンパイル時バインディングにする方法はありますか?
ここで 'commonConstruct'は定義されていますか? –
commonConstructは各クラスの@implementationセクションで定義されています –