2013-05-03 49 views
2

我正在寫一個小程序,它在運行時在吱吱聲中修改方法。 我看到在吱吱聲中有一種叫做getSource(在CompiledMethod類中定義)的方法,它返回編譯方法的源代碼。吱吱聲:在運行時獲取方法的源代碼

如果我的輸入是對應於某個方法的符號,該如何獲取方法的源代碼?

回答

3

你應該知道它的定義方法的類,那麼您可以通過訪問CompiledMethod,例如,

theClass >> methodSelectorSymbol 

theClass compiledMethodAt: methodSelectorSymbol 

theClass是與方法的類和methodSelectorSymbol是與該方法相對應的符號,即您的輸入。 還有更多的方法。 例如,

theClass lookupSelector: methodSelectorSymbol 

不僅在theClass還在於它的超搜索。

但是,所有的方法都要求您給出一個類作爲起點。