NSScanner: nil string argument libc++abi.dylib: terminate_handler unexpectedly threw an exception问题

       最近在项目中点击系统导航的返回按钮,程序总是莫名其妙的奔溃,直接跳转到main函数就不动了,控制台输出任何错误信息:

NSScanner: nil string argument

NSScanner: nil string argument

libc++abi.dylib: terminate_handler unexpectedly threw an exception

在模拟器上不闪退,在真机上时不时闪退。谷歌一搜,有人说这种情况大多是字符串操作异常,但是很难定位到底是在哪里出了问题。也有人说先把集成友盟的代码注掉就可以在控制台看到错误信息了。果断把友盟的代码注掉,结果果然输出了以下错误信息:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'An instance 0x1495b06e0 of class YLCountChooser was deallocated while key value observers were still registered with it. Current observation info: (

Context: 0x0, Property: 0x1492642f0>

)'

这下终于看出点眉目了,原来是我这里定义的一个YLCountChooser通过KVO监听了它的count属性,而在释放的时候没有移除其observer。找到问题就很好解决了,在代码中将其observer移除就正常了。


参考:

Terminate_handler Unexpectedly Threw an Exception无法显示崩溃原因和调用堆栈的分析及解决

你可能感兴趣的:(NSScanner: nil string argument libc++abi.dylib: terminate_handler unexpectedly threw an exception问题)