总结一下在Ray上看到的关于异常的帮助:
有两种崩溃 一种是SIGABRT ( EXC_CRASH), 一种是EXC_BAD_ACCESS ( SIGBUS or SIGSEGV).
SIGABRT 是一种控制冲突,app故意终止,因为系统做了一些它不应该做的事情.
EXC_BAD_ACCESS 是一种更难调试的异常,因为它通常是内存管理问题
2.注意: 当你得到一个“unrecognized selector sent to instance XXX”错误,检查对象是否是正确的类型,并且确实有那个方法。 你经常会发现你在调用并非你要的对象的方法,因为一个指针变量可能不包含正确的值。
3. 注意:这类异常很容易抓住,如果你注意编译器警告。 就我个人而言,我对所有警告作为致命错误(甚至有一个选项在构建设置屏幕在Xcode中),在运行应用程序之前我会解决每一个警告,Xcode很擅长指出这样的愚蠢的错误,这是明智的注意这些提示。
4.注意:只做“po $eax”时,它将调用对象上的“描述”方法和打印,也在这种情况下给你错误消息。