objective-c – 发现Obj-C中给定类的子类
发布时间:2020-12-16 06:04:08 所属栏目:百科 来源:网络整理
导读:有没有办法在运行时发现给定类中存在哪些子类? 编辑:从迄今为止的答案我想我需要澄清一点我想要做的.我知道这不是Cocoa的常见做法,也可能带有一些注意事项. 我正在使用动态创建模式编写一个解析器. (参见Buck和Yacktman的Cocoa Design Patterns第5章)基本
有没有办法在运行时发现给定类中存在哪些子类?
编辑:从迄今为止的答案我想我需要澄清一点我想要做的.我知道这不是Cocoa的常见做法,也可能带有一些注意事项. 我正在使用动态创建模式编写一个解析器. (参见Buck和Yacktman的Cocoa Design Patterns第5章)基本上,解析器实例处理堆栈,并实例化知道如何执行某些计算的对象. 如果我可以获得MYCommand类的所有子类,我可以为用户提供可用命令的列表.此外,在第5章的示例中,解析器具有替代字典,因此可以使用像 –,*和/的操作符. (它们映射到MYAddCommand等)对我来说,这个信息似乎属于MyCommand子类,而不是解析器实例,因为它有点失败了动态创建的想法. 解决方法
而不是尝试自动注册MYCommand的所有子类,为什么不将问题分为两个?
首先,提供注册类的API,像[MYCommand registerClass:]. 然后,在MYCommand中创建代码,这意味着任何子类将自动注册.就像是: @implementation MYCommand + (void)load { [MYCommand registerClass:self]; } @end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |