3

viewController を作成するとします。次に、最初のような別の viewController を作成したいと思います。継承のための仕事のようです。

ただし、originalViewController のタスクの多くはプライベート メソッドであり、パブリック インターフェイスを最小限に抑えたいと考えています。

これらのメソッドを public と宣言すると、プライベートなものをプライベートに保つという目的は達成されません。

これらのメソッドをプライベートに宣言すると、子クラスはそれらのメソッドを認識しません。

子クラス用に特別な .h ファイルを作成すると、扱いにくくなります。

とにかく、この種のことを行う業界標準の方法は何ですか?

C++ では、この権利を達成するために保護されたメソッドまたは関数を使用しますか?

アップデート:

置いた

#import "BGGoogleMap+protected.h"

@implementation BGGoogleMap ()

@end

うまくいきません。識別子を要求します。

4

2 に答える 2

4

Catfish_Man が提案することに加えて、サブクラスのみがアクセスできるクラスにカテゴリを作成できます。これを行う方法のドキュメントは次のとおりです。基本的に、クラスの新しいインターフェイスを作成し、そこにプライベート メソッドを配置するだけです。このような:

@interface MyClass (MyClass_Private)
// Method declarations
@end

それらを Foo_Internal.h に入れ、サブクラスに Foo_Internal.h を含めますが、公開しないでください。

于 2012-11-28T02:48:46.450 に答える
3

ヘッダーを Foo.h と Foo_Internal.h に分割するのが最善の方法のように思えます。

于 2012-11-28T02:46:03.203 に答える