【发布时间】:2012-07-01 08:27:23
【问题描述】:
假设我有一个特定的对象类,它定义了一个返回关于该类的简单信息的类方法,因此:
+ (NSInteger) defaultValueForClass {
return 5;
}
现在,假设我有一系列子类,每个子类都覆盖此方法以提供不同的信息。我的问题是:如何在不知道正在执行哪个具体子类的情况下调用该类方法,从而使用相关的子类方法?我不能简单地去:
[[anObject class] defaultValueForClass]
...因为此时编译器不知道我的自定义子类方法。
【问题讨论】:
-
它会在运行时知道类的类型
-
这不是它在运行时知道什么的问题,而是让编译器明白这段代码是有效的,以便项目首先编译的问题。