5

という名前のプライベートメソッドを定義することにより-(id)init、クラスのさまざまなフレーバー、つまり、、、などで重複initするコードを回避しようとしています。initWithFrameinitWithCodercommonConstruct

このメソッドは、すべての init メソッド フレーバーに共通する面倒な作業を行い、initコンストラクターによって呼び出されます。

私が今抱えている問題は、派生クラスでは、初期化子ヘルパー (「commonConstruct」) に同じ命名規則を使用して、基本クラスが派生クラスの を呼び出すcommonConstructことです。つまり、ファイルではなくファイルでinvisible宣言されています。.m.h

ただし、ランタイムは、オーバーロードされた commonConstruct を見つけて、独自のメンバー関数の代わりにそれを実行します。

各サブクラスの初期化ヘルパーに異なる名前を使用する以外に方法はありますか?

言い換えれば、Objective-C「非仮想」のメンバー関数を作成する方法はありますか?

4

2 に答える 2