有没有办法在运行时发现给定类中存在哪些子类?
编辑:从迄今为止的答案我想我需要澄清一点我想要做的.我知道这不是Cocoa的常见做法,也可能带有一些注意事项.
我正在使用动态创建模式编写一个解析器. (参见Buck和Yacktman的Cocoa Design Patterns第5章)基本上,解析器实例处理堆栈,并实例化知道如何执行某些计算的对象.
如果我可以获得MYCommand类的所有子类,我可以为用户提供可用命令的列表.此外,在第5章的示例中,解析器具有替代字典,因此可以使用像 –,*和/的操作符. (它们映射到MYAddCommand等)对我来说,这个信息似乎属于MyCommand子类,而不是解析器实例,因为它有点失败了动态创建的想法.