0

NSArray に次の 3 つのクラスのオブジェクトがある場合、配列要素を適切なオブジェクトに割り当てる最良の方法は何ですか?

@interface Simple : NSObject 
@interface Intermediate : Simple 
@interface Advanced : Simple

NSArray をループしたいのですが、配列の 2 番目の要素が Intermediate で 5 番目の要素が Advanced の場合、それらをそれぞれ Intermediate と Advanced の変数に割り当てたいと思います。これにより、基本クラスで定義されていない派生クラスのメソッドを呼び出すことができます。

NSArray にさまざまなオブジェクトを含めるよりも、これを行う方がよいかどうか教えてください (元の質問に対する答えを知りたいと思っています)。

4

2 に答える 2

5

isMemberOfClass:または のいずれかを使用して、ループ中にオブジェクトのクラスを確認できますisKindOfClass:(違いの詳細はこちら)。

とはいえ、もし - 私が推測するように - 3 つのクラスが共通のロジックを共有しているのであれば、と呼ばれる共通の祖先のサブクラスを作成しSimple、型の変数を使用してみませんか?IntermediateAdvanceDifficultyDifficulty

Difficultyサブクラスに関係なく、配列内の任意のオブジェクトを変数に割り当てることができます。

于 2013-10-01T21:55:30.883 に答える