在Objective-C中,您可以通过执行以下操作打印调用堆栈:
NSLog(@"%@", [NSThread callStackSymbols]);
如何在不使用Foundation类的情况下在Swift中做到这一点?
发布于 2015-06-13 10:25:27
正如雅各布森所说,使用以下方法:
Swift 2:
print(NSThread.callStackSymbols())
Swift 3/ Swift 4:
print(Thread.callStackSymbols)
这是Swift代码。它使用的是基础方法,但在iOS上所做的90%+也是如此。
编辑:
请注意,如果使用以下命令,格式效果会更好:
Thread.callStackSymbols.forEach{print($0)}
在调试器命令行中,您可以键入
e Thread.callStackSymbols.forEach{print($0)}
发布于 2016-09-22 15:49:58
对于Swift 3使用:
print(Thread.callStackSymbols)
或者为了更好的格式化
for symbol: String in Thread.callStackSymbols {
print(symbol)
}
发布于 2016-02-25 21:40:22
这将略微改善输出。
for symbol: String in NSThread.callStackSymbols() {
NSLog("%@", symbol)
}
https://stackoverflow.com/questions/30754796
复制相似问题