我真的在为我们的大型 ios 项目调试代码而苦苦挣扎。似乎每个人都对到处放置块和调度队列发疯了。
当我被要求调试一段代码时,我真的很喜欢单步调试,看看事情是如何变化的,看看变量到底发生了什么。对于所有已放入的块,我真的不能轻易做到这一点,原因有两个:
我必须在每个小块内放置一个断点才能在该块中停止。
在一个块内,来自块外的变量不会以可用的方式显示,并且不能使用 po 命令轻松转储到控制台。
是否有更简单或更好的方法来单步执行/评估充满块的代码?或者我在这里错过了什么?
为什么不使用 NSLog() 在块中输出所需的变量?
您可以使用以下命令在控制台中打印出对象:
例子:
po object.name
po object.age
另一种方法:在代码处设置断点。当它在该点停止执行时,将鼠标悬停在它上面。
有关更清晰的细节,请查看我对这个问题的回答:How to inspect elements from NSArray and NSDictionary in xcode?
你是对的,调试块有点麻烦。我尝试使用“自动转储断点”,但事实证明,它们很难维护......
我最终基本上使用了NSLog
. 但问题NSLog()
是,你不想在你的发布版本中记录所有的日志。所以我建议使用如下工具:
我认为这真的很棒。您可以在此博客文章中阅读相关内容并进行一般登录:
真的很值得一读。