1
A
回答
2
對於剛剛印刷方法的名稱,使用
NSLog(@"%@", NSStringFromSelector(_cmd));
要印刷方法的參數是一項複雜的任務。我們需要遍歷堆棧並將其打印出來,正如我們在_cmd + sizeof(SEL)將給予arg0地址(但arg0的大小和類型未知)之後所看到的那樣, 。
Method method = class_getInstanceMethod([self class], _cmd);
unsigned nargs = method_getNumberOfArguments(method);
void *start = _cmd;
for(unsigned i = 0; i< nargs ; i++) {
char *argtype = method_copyArgumentType(method, i);
//find arg size from argtype
// walk stack given arg zie
free(argtype);
}
基本實現應該看起來像這樣。所以如果參數是對象,那將是很棒的(因爲我們知道參數的大小是32/64位)。否則,我們需要進行類型編碼,並按參數的大小移動光標。看看https://github.com/holtwick/HOLog,這正是你想要的,但它只適用於模擬器。
相關問題
- 1. 打印當前數
- 2. 在Python中打印時包含當前方法名稱
- 3. Google AMP在頁腳打印當前年份的正確方法
- 4. 如何打印當前行?
- 5. iOs打印當前屏幕
- 6. 打印方法中的NullPointerException
- 7. 在Sublime中打印當前行號
- 8. 在python中打印以前的打印?
- 9. 'java.lang.Class.getDeclaredField()'的ObjectiveC中的類似方法'
- 10. python:水平打印而不是當前的默認打印
- 11. Eclipse方法打印?
- 12. 打印出當前的工作目錄
- 13. 打印當前路徑的一部分
- 14. 打印當前目錄的內容C++
- 15. Ruby打印當前的可見性
- 16. 打印當前HTML頁面的onclick
- 17. PHPExcel打印當前頁面的細胞
- 18. 當我運行此方法,然後打印我的陣列,沒有打印
- 19. 打印在Java方法不打印的JTable中
- 20. 在drawRect方法中刪除形狀? - ObjectiveC
- 21. 從ObjectiveC中調用子方法(IOS6)
- 22. 有沒有辦法打印DevExpress GridControl PrintingSystem的當前視圖?
- 23. Attachmate Extra:VBA:打印當前頁面
- 24. 打印當前日期和時間C#
- 25. C編程。打印當前用戶
- 26. 如何用logback打印當前類名?
- 27. 未能打印當前圖形
- 28. 打印當前值和未來值
- 29. 如何讓LLDB打印當前行
- 30. VBA - 每行打印當前文件名
輝煌,謝謝。對於打印方法參數是否還有其他變體? – 2014-10-02 08:27:09
@GauravSharma我會盡力去做,並會告訴你。 – l0gg3r 2014-10-02 08:37:13