0
A
回答
5
如回答here,#import < objc/runtime.h >
和使用class_copyMethodList()。
-1
dapptrace
(Dtrace)是你的朋友。
手冊頁(man dapptrace
)上:用戶和 庫函數
dapptrace打印細節要求
dapptrace
針對的Dtrace腳本語言(D
)編寫的。這意味着您可以調整dapptrace或從其腳本文件中提取想法來做很多事情。例如:
等待myFunctionWhichCreatesSpecialObject
被調用。存儲它返回的對象地址(特殊對象)。打印出在該對象上調用的所有選擇器。
您還可以直接調用dtrace編寫簡單的單線法術。我會讓你去尋找那些。
-2
在運行時你可以使用
類方法 「+(BOOL)instancesRespondToSelector:(SEL)aSelector」
只要你知道你要檢查的選擇。
2
一般來說,這是不可能的。 「一個實例響應的選擇器」可能是一個無限集合。例如,可以實現將羅馬數字作爲消息發送並返回相應整數值的類。如果你想知道在一個給定時間(這是一個不同的問題)由一個類實現的實例方法的精確集合,你可以使用Objective-C runtime functions來獲得一個類的實例方法列表,並走上類樹找到它從超類繼承的那些。但是,這又是兩件完全不同的事情。一個類可能有一個它選擇不響應的消息的方法,它可能會響應那些沒有直接相應方法的消息。
相關問題
- 1. 在運行時選擇實例行爲
- 2. 在命令行上運行目標的所有綁定實例
- 3. 選擇在運行時模板實例雖然切換在C++
- 4. 目標C創建實例在運行時
- 5. 行動:@選擇目標C
- 6. 目標C:無法識別的選擇發送到實例0xba3e750
- 7. 在運行時更改類的所有實例的方法
- 8. 在運行時C#結構實例化
- 9. 在運行時模板實例化和功能選擇
- 10. 在運行時枚舉類型的所有實例?
- 11. 在運行時選擇方法實現
- 12. 獲取目標c中的類的所有實例?
- 13. 有角度的網格標題行選擇,選擇所有行
- 14. 從目標C選擇器調用實例方法
- 15. 如何取消選擇在目標c中選擇的行?
- 16. 目標C:當選擇器與實例的屬性關聯時,respondsToSelector
- 17. Objective-C的運行時異常 - 無法識別的選擇發送到實例
- 18. 碼乘以所有實例運行
- 19. 只有在實際構建項目時才運行MSBuild目標
- 20. 目標在JS腳本標識的所有實例添加
- 21. 目標C - 在運行時確定
- 22. 如何僅在手動選擇目標時運行Workseet_Change事件?
- 23. 在運行時獲取目標類的所有方法
- 24. WAMP:Index.php在選擇它所在的目錄時立即執行/運行
- 25. 多個實例目標c
- 26. 針對C目標運行時的簡單ANTLR 3.4示例
- 27. 重複的目標:Xcode中不能運行使用所選擇的目的地
- 28. 實體框架視圖在選擇時不顯示所有行
- 29. 在React.js中選擇組件的所有實例
- 30. 如何在RDF類的所有實例上選擇全部?
[obj-c對象的列表選擇器]的完全重複(http://stackoverflow.com/questions/330030/list-selectors-for-obj-c-object) – 2010-11-23 20:01:31
您的意思是所有選擇器實際上在響應期間做出響應一個特定的運行,或所有可以響應的選擇器,在運行時確定? – 2010-11-23 21:20:47