[__NSArrayM insertObject:atIndex:]:对象不能为零 - 如何确定错误在哪里?

Rom*_*zak 5 null objective-c nsarray nserror ios

我有异步事件的大项目,有时我有错误 [__NSArrayM insertObject:atIndex:]:对象不能为零,但我不知道在哪里抛出此错误..我怎么能抓住这个错误?我在我操作insertobject的所有地方都设置了断言:atIndex而且没有..

这是堆栈:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '***    -[__NSArrayM insertObject:atIndex:]: object cannot be nil'


*** First throw call stack:

(0x34c352a3 0x32f4597f 0x34b7f8d9 0xc48db 0xc3ced 0xc3b41 0x1178d9 0x148aed 0x103cfd    0x102fc9 0x101f95 0x35f25595 0x35f7a13b 0x35f7a081 0x35f79f65 0x35f79e89 0x35f795c9 0x35f794b1 0x35f67b93 0x35f67833 0xd820b 0x35fc8275 0x3604aea9 0x326efa6f 0x34c0a5df 0x34c0a291 0x34c08f01 0x34b7bebd 0x34b7bd49 0x350b82eb 0x35f5a301 0x62e45 0x62de0)

libc++abi.dylib: terminate called throwing an exception
Run Code Online (Sandbox Code Playgroud)

小智 47

检查代码崩溃位置的好方法是:

1)转到Xcode中的断点选项卡.

2)单击底部的"+"按钮.

3)添加异常断点

a)在中断选项卡中选择两个:

  i) on Throw 

  ii) on Catch 
Run Code Online (Sandbox Code Playgroud)

并建立和联合国.

4)这些断点将准确地为您提供90%的应用程序崩溃的位置.

希望这对你有所帮助.:)