这似乎完全是任意的,有时 NSString 在调试器中会显示得很好:
myStr NSString * 0x0000000104e00040 @"Hello"
其他时候只是:
myStr NSString * 0x0000000104e00040
NSStrings 没有问题,只是它们在调试器中的显示方式。有什么因素会影响这个吗?
我认为这是 IDE 中的一个错误,我认为我们对此无能为力。
也许堆栈深度会影响...但那是猜测。
po MyStr
控制台中的a总是可以正常工作:)
您也可以 ctrl + 单击一个对象,然后选择打印说明。
对于po myString
不起作用的情况,可能是您在 IDE 中过滤控制台输出。例如,我正在过滤“myFunc”,然后执行po myString
. 除非myString
包含字符串“myFunc”,否则它不会显示。这也过滤掉了上面提到的打印描述方法。
我认为这不是 XCode 的最佳行为,如果过滤器仅应用于程序的输出,而不是调试行为,那会更好。