如何存储一个Class变量,然后在Objective-C中调用该类的静态方法

时间:2012-10-23 09:36:35

标签: objective-c ios xcode static-methods

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

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

我知道我可以用

来上课
Class something = [VirginMobile class];

但我不能做int i = [something staticMethodReturningInt];

之类的事情

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

干杯

1 个答案:

答案 0 :(得分:6)

我知道你可能不想听到这个,但是一旦你开始对课程过于聪明,那么使用常规对象肯定会有所体现。我不确定我是否理解你的问题,但解决问题的一种方法是将接收器强制转换为id

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

只要编译器可以看到methodReturningInt的定义,这将编译正常。当然,在运行时VirginMobile必须回复+methodReturningInt