调用静态方法的一类
问题描述:
给出类似下面的方法,它返回一个类...调用静态方法的一类
-(Class)getClass
{
return [MyAwesomeClass class];
}
...我该怎么称呼这个类的静态方法?我想这一点,但它没有工作...
Class theClass = [anInstance getClass];
[theClass someStaticMethod];
我应该如何呼吁theClass
一个静态方法?
编辑补充: 看来我做的是正确的事情,而其他事情正在导致崩溃。现在我需要弄清楚如何摆脱没有找到方法someStaticMethod
的警告。我应该投什么theClass
?
答
你完全按照你写的方式来做,假设有问题的班级回应someStaticMethod
。
如果它不能正常工作,那么其中一个最有可能的情况:
- 您不必类你认为
- 类未对消息作出回应
- 您正确声明
- 没有汇入其中,该方法被声明的标题中的方法
- 的方法本身是越野车
答
这是一个古老的问题,但我回答完整性。如果你使用的ID,而不是类,将工作
id theClass = [anInstance getClass];
[theClass someStaticMethod];
编译器会很乐意与这个动态类型,但你必须确保类将对+ someStaticMethod回应,否则将在运行时
静态方法或类崩溃方法? – 2011-03-23 20:11:30
对于我目前的使用,一个静态的方法,但要么是有用的 – 2011-03-23 20:14:13
你的意思是'+ classMethod'吗? – Richard 2011-03-23 20:14:43