【发布时间】:2011-05-06 16:25:28
【问题描述】:
我正在尝试编写一些动态代码,用户可以尝试从类的特定实例调用方法并在运行时解析它。检索信息的实现存在,但访问它的方法不存在,因为它是基于每个实例的。
例如,用户可能想要调用类中不存在的名为“getSomething”的方法:
[someInstance getSomething]
在这种情况下,我希望解决一个具有可变返回类型的实现,该类型仅适用于正在处理的实例。我正在考虑使用 Objective-C 中的class_addMethod,但我不能 100% 确定它的行为。在文档中,它声称这可用于添加类或实例方法。调用此类是否仅将方法添加到特定实例或类中,以便之后创建的每个实例都具有该方法?我还读到,一旦添加了方法,就无法删除它。
也许我的方法不正确,所以如果知道任何替代方案,我将不胜感激。我不能使用消息转发,因为没有类可以理解选择器已经实现。
【问题讨论】:
标签: objective-c dynamic objective-c-runtime resolve