【发布时间】:2013-08-12 03:51:15
【问题描述】:
是否可以获得给定类的实例响应的所有选择器的列表?
【问题讨论】:
-
查看描述 [class_copyMethodList][1] 的 stackoverflow 文章。 [1]:stackoverflow.com/questions/330030/…
标签: objective-c reflection runtime selector
是否可以获得给定类的实例响应的所有选择器的列表?
【问题讨论】:
标签: objective-c reflection runtime selector
是的。 copyMethodList() 返回已实现方法的列表。可能有更多选择器,实例将使用转发机制进行响应。
class_copyMethodList() 只复制在类层次结构的这个阶段实现的方法。要获得所有内容,您必须迭代超类:
Class class = object_getClass( instance );
while( class != Nil )
{
// copy method list
class = class_getSuperclass( class );
}
【讨论】:
如果选择器没有隐藏,您可以输入[instanceName(后面有一个空格),然后点击ESC。将弹出一个下拉菜单,为您提供可见选择器的列表。
【讨论】: