libc++abi.dylib: terminate_handler unexpectedly threw an exception错误
2016-01-06 18:40
323 查看
最近搭建基础框架经常遇见这个error
我这里由于使用了友盟插件导致友盟截取了bug日志,crash日志没有打印出来,屏蔽友盟控件就可打印出crash日志。
出现这个错误我遇见了几种情况
1、从后缀看,是一个动态库,那么会不会是因为发生了一些动态错误?而按经验来看,一般的动态错误基本是因为动态类型错误引起,在object-c语言中,会发生动态类型错误的可能基本存在于不可变类型与可变类型之间的转换,那么我们的查错范围将优先限制在不可变类型与可变类型转换上,是否我们对一个不可变类型进行了修改操作?例如:NSArray 强制转换成NSMutableArray,NSDictionary转换成NSMutableDictionary,然后在对其经行add,delegate,indext等修改操作。
2、在数组或字典中传入空值,造成NSScanner:nil string argument,然后引起的本错误,只要把传入的空值给解决了就好.
3、这个是自己不小心,kvo监值没有remove造成的,我子类里面注册后未释放,这里用delloc来释放就好了
我这里由于使用了友盟插件导致友盟截取了bug日志,crash日志没有打印出来,屏蔽友盟控件就可打印出crash日志。
出现这个错误我遇见了几种情况
1、从后缀看,是一个动态库,那么会不会是因为发生了一些动态错误?而按经验来看,一般的动态错误基本是因为动态类型错误引起,在object-c语言中,会发生动态类型错误的可能基本存在于不可变类型与可变类型之间的转换,那么我们的查错范围将优先限制在不可变类型与可变类型转换上,是否我们对一个不可变类型进行了修改操作?例如:NSArray 强制转换成NSMutableArray,NSDictionary转换成NSMutableDictionary,然后在对其经行add,delegate,indext等修改操作。
2、在数组或字典中传入空值,造成NSScanner:nil string argument,然后引起的本错误,只要把传入的空值给解决了就好.
3、这个是自己不小心,kvo监值没有remove造成的,我子类里面注册后未释放,这里用delloc来释放就好了
相关文章推荐
- 快速傅里叶变换和逆变换的C++实现
- C++ primer plus读书笔记——第17章 输入、输出和文件
- C++ primer plus读书笔记——第16章 string类和标准模板库
- C++ primer plus读书笔记——第15章 友元、异常和其他
- C++ primer plus读书笔记——第14章 C++中的代码重用
- C++ primer plus读书笔记——第13章 类继承
- c++例子分析-内存内容覆盖
- C++ primer plus读书笔记——第12章 类和动态内存分配
- C++ primer plus读书笔记——第11章 使用类
- C++ primer plus读书笔记——第10章 对象和类
- C++ primer plus读书笔记——第9章 内存模型和名称空间
- C++ primer plus读书笔记——第8章 函数探幽
- C++ primer plus读书笔记——第7章 函数——C++的编程模块
- C++ primer plus读书笔记——第6章 分支语句和逻辑运算符
- C++ primer plus读书笔记——第5章 循环和关系表达式
- C++ primer plus读书笔记——第4章 复合类型
- C++ primer plus读书笔记——第3章 处理数据
- C++ primer plus读书笔记——第2章 开始学习C++
- C++ primer plus读书笔记——第1章 预备知识
- SLT之算法实现