昨晚偶然读到一篇文章,收获很大,不仅仅是技术上的,而且还发现,只有小孩子才去关注个人博客的主题、样式,大神只关注博文的质量和价值。
本文给大家分享一个Xcode使用技巧。初学者可能会遇到这种情况,程序崩了,Xcode总是停在并高亮程序main函数中的代码。这样我们没办法看到真正抛出异常的地方,也就没办法愉快地解决问题了。
对于一些异常(比如段错误等),可能这是合理的,但是有些时候从Xcode给出的提示来看,它明明知道是什么原因导致的crash!
* Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘* -[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]’
为了解决这个问题,我们在Xcode中位所有异常设置一个断点即可。
在下图所示的位置上,添加一个断点,选择“Add Exception Breakpoint”,这时一个新的断点就会被创建
编辑这个断点,设置其break的时机为“On Throw”
再次运行会crash的程序,如果抛异常的地方是你自己写的代码,Xcode会在该处停住,但是如果抛异常的地方是在一些第三方库,由于它们已经被编译,可能Xcode不能精准的知道哪一行代码导致了exception。
最后照例送大家一句话。
每次仇恨一个东西,你就失去了向它学习的机会。
本文参考文献
xcode-doesnt-show-the-line-that-causes-a-crash