5

所以我希望一个类能够存储一个“类”对象,然后调用该类的静态方法......

基本上我有多个类继承一个类,所以它们都有相同的静态方法(但返回不同的东西)。我希望能够存储我正在使用的子类,所以我知道要调用哪个子类的静态方法...

我知道我可以上课

Class something = [VirginMobile class];

但我不能再做类似的事情 int i = [something staticMethodReturningInt];

有什么办法可以做到这一点吗?

干杯

4

1 回答 1

6

我知道你可能不想听到这个,但是一旦你开始对类太聪明了,使用常规对象是一个肯定的迹象。我不确定我是否正确理解了您的问题,但解决打字问题的一种方法是将接收器转换为id

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

只要编译器可以看到methodReturningInt. 当然,在运行时VirginMobile必须响应+methodReturningInt.

于 2012-10-23T09:40:28.053 回答