我怎样才能得到一个对象可以理解的所有方法的列表?
例如:
set := 8 getAllMethods
Run Code Online (Sandbox Code Playgroud)
会给我所有8可以理解的方法set
在代码中,您可以使用allSelectors:
set := 8 class allSelectors
Run Code Online (Sandbox Code Playgroud)
为您提供一组 8 可以理解的所有消息名称(又名选择器)。
如果您需要 CompiledMethods 而不仅仅是消息名称,您可以使用 lookupSelector:
| class |
class := 8 class. "will be SmallInteger"
set := class allSelectors collect: [:each | class lookupSelector: each]
Run Code Online (Sandbox Code Playgroud)
如果您不想在代码中执行此操作,而是想在 IDE 中找出对象可以理解的消息,那么我建议使用协议浏览器(又名 Lexicon 工具)。您可以通过类的上下文菜单中的“浏览协议”打开它:
我用它来查找 allSelectors 和 lookupSelector:,它们是从 Behavior 继承的,并没有在 Class 本身中定义。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           267 次  |  
        
|   最近记录:  |