给定类似下面的方法,返回一个Class ...
-(Class)getClass
{
return [MyAwesomeClass class];
}
...如何在该类上调用静态方法?我试过这个,但它没有用......
Class theClass = [anInstance getClass];
[theClass someStaticMethod];
我应该如何在theClass
上调用静态方法?
编辑添加:
看来我做的是正确的事情,还有其他因素导致了崩溃。现在我需要弄清楚如何摆脱找不到方法someStaticMethod
的警告。我应该将theClass
投射到哪个?
答案 0 :(得分:4)
你完全按照你编写它的方式完成它,假设有问题的类响应someStaticMethod
。
如果它不能正常工作,那么其中一个很可能就是这种情况:
答案 1 :(得分:4)
这是一个古老的问题,但我为了完整性而回答它。如果您使用id而不是Class,它将起作用
id theClass = [anInstance getClass];
[theClass someStaticMethod];
编译器会对这种动态类型感到满意,但是你必须确保Class会响应+ someStaticMethod,否则它会在运行时崩溃