在类上调用静态方法

时间:2011-03-23 20:09:33

标签: objective-c class methods static

给定类似下面的方法,返回一个Class ...

-(Class)getClass
{
    return [MyAwesomeClass class];
}

...如何在该类上调用静态方法?我试过这个,但它没有用......

Class theClass = [anInstance getClass];
[theClass someStaticMethod];

我应该如何在theClass上调用静态方法?

编辑添加: 看来我做的是正确的事情,还有其他因素导致了崩溃。现在我需要弄清楚如何摆脱找不到方法someStaticMethod的警告。我应该将theClass投射到哪个?

2 个答案:

答案 0 :(得分:4)

你完全按照你编写它的方式完成它,假设有问题的类响应someStaticMethod

如果它不能正常工作,那么其中一个很可能就是这种情况:

  • 你没有想到的课程
  • 该课程不响应消息
  • 您声明方法不正确
  • 您尚未导入声明方法的标题
  • 该方法本身就是错误的

答案 1 :(得分:4)

这是一个古老的问题,但我为了完整性而回答它。如果您使用id而不是Class,它将起作用

id theClass = [anInstance getClass];
[theClass someStaticMethod];

编译器会对这种动态类型感到满意,但是你必须确保Class会响应+ someStaticMethod,否则它会在运行时崩溃