大意就是NSCFType这个东西是没有在文档中提到的内部类,我想给你发送消息的类已经被释放掉了,NSCFType这个东西被存放在他原来的位置上,所以会这样提示
http://blog.csdn.net/kingmari/article/details/7738071
http://www.bwxxkj.com/a/jishuzhongxin/shoujikaifa/2012/0629/109138.html
http://blog.csdn.net/yanxiaoqing/article/details/7264876
当程序崩溃的时候怎么办
http://article.ityran.com/archives/1006
http://article.ityran.com/archives/1143
注意:“this class is not key value coding-compliant for the key XXX”的错误经常都是由于你装载这个nib,但是里面引用的一些熟悉可能不存在。特别是当你在代码中移除了outlet属性后,但是你却没有在nib中移除这个连接。
NSAssert()//是一个叫断言的东西
断言通常只在调试编译下有用的,因此他们对发布到app store的最终的app是没有运行时的影响的。
假如崩溃在main.m里面,就可以设置全局异常断点(Exception Breakpoint)。
.在异常断点开启的状态下,你也没有得到得到有用的信息。在这种情况下,多继续几次运行这个app,或者在调试提示后面输入“po $eax”命令。
在调试窗口中使用的命令(lldb)
p 打印变量的地址
po 打印实际的对象,而不是地址
c 一个简短的继续指令,和点击继续按钮一个效果
注意:这个“po”命令对于检查你的对象是非常有用的。你可以在程序暂停在调试器的时候,或者在设置一个断点的时候,或者在崩溃的时候,使用这个命令。你需要确定的是这个方法当前在调用堆栈里面是高亮的,否则这个调试器将找不到这个变量。
zombie
你不应该一直启用zombie objects。因为这个工具将永远不会释放内存,只是简单标记一下这个内存是不死的,你最终将会在某个时候耗尽所有的内存。因此你应该在排查内存相关的错误的时候才开启zombie objects,其他时候应该关闭它
静态分析工具(static analyzer tool)
不要忘记静态分析工具(static analyzer tool),这个工具将会捕获更多的错误。假如你是一个初学者,推荐你开启它。你可以在Build Settings界面上为你的工程设置: