5

だから私は、クラスが「クラス」オブジェクトを格納できるようにしてから、後でそのクラスの静的メソッドを呼び出すことができるようにしたい...

基本的に、単一のクラスを継承する複数のクラスがあるため、それらはすべて同じ静的メソッドを持ちます (ただし、異なるものを返します)。使用しているサブクラスを保存できるようにしたいので、どのサブクラスの静的メソッドを呼び出すべきかがわかります...

私はクラスを取得できることを知っています

Class something = [VirginMobile class];

しかし、私は次のようなことはできません int i = [something staticMethodReturningInt];

これを行う方法はありますか?

乾杯

4

1 に答える 1

6

おそらくそれを聞きたくないことはわかっていますが、クラスを賢く使い始めたら、代わりに通常のオブジェクトを使用することをお勧めします。あなたの質問を正しく理解しているかどうかわかりませんが、入力に関する問題を解決する 1 つの方法は、レシーバーを にキャストすることidです。

id something = [VirginMobile class];
int i = [something methodReturningInt];

コンパイラが の定義を認識できる限り、これは正常にコンパイルされますmethodReturningInt。そしてもちろん、実行時VirginMobileに に応答する必要があり+methodReturningIntます。

于 2012-10-23T09:40:28.053 に答える