错误知识总结
1、[NSPlaceholderString initWithString:]: nil argument- 是参数为空导致!
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSPlaceholderString initWithString:]: nil argument'
*** First throw call stack:
(0x35a5788f 0x37dfe259 0x35a57789 0x35a577ab 0x354ff4c9 0x39756f 0x398137 0x39b5a3 0x354e6a81 0x3557a591 0x32e1a735 0x32e1a5f0)
terminate called throwing an exceptionterminate called throwing an exception(lldb)
一个大坑找了好久,原来是传参数A,A参数为空!!
2、libc++abi.dylib: terminate_handler unexpectedly threw an exception
我们在运行xcode工程时,有时候会遇到”libc++abi.dylib: terminate_handler unexpectedly threw an exception”错误,app莫名其妙就crash掉了,在控制台输入bt命令,查看调用堆栈,结果也是一头雾水:
基于以上分析,我们可以跟踪断点,会发现程序在对mutable对象进行add、set等操作时挂掉,而这个对象实际上赋值的是一个不可变对象。常见的情况是把一个NSArray对象赋值给一个NSMutableArray对象,然后进行了delete、add等修改操作,或者把一个NSDictionary对象赋值给一个NSMutableDictionary对象,然后进行了set等操作。