【发布时间】:2009-11-27 21:04:35
【问题描述】:
有没有办法在运行时发现给定类的子类存在?
编辑: 从目前的答案来看,我认为我需要进一步澄清我正在尝试做的事情。我知道这在 Cocoa 中并不常见,并且可能会带来一些警告。
我正在使用动态创建模式编写解析器。 (参见 Buck 和 Yacktman 所著的 Cocoa Design Patterns 一书第 5 章。)基本上,解析器实例处理堆栈,并实例化知道如何执行某些计算的对象。
如果我可以获得MYCommand 类的所有子类,例如,我可以为用户提供可用命令的列表。此外,在第 5 章的示例中,解析器有一个替换字典,因此可以使用 +、-、* 和 / 等运算符。 (它们被映射到MYAddCommand 等。)对我来说,这些信息似乎属于MyCommand 子类,而不是解析器实例,因为它有点违背动态创建的想法。
【问题讨论】:
标签: objective-c cocoa reflection