定位EXC_BAD_ACCESS错误 设置NSZombieEnabled
来源:互联网 发布:vue2.0源码分析 编辑:程序博客网 时间:2024/06/05 17:40
我们做 iOS
比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如 release
首先解释下EXC_BAD_ACCESS,当你向已经释放的对象发送消息时就会出现这种错误。
至于NSZombieEnabled,就是当设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie,个人感 觉和线程的那几个状态有些相似,设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不会向之前那样Crash或者产生 一个难以理解的行为,而是放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失(原文是die),因此我们就可以找到具体或者大概是哪 个对象被错误的释放了。
比如
static
NSMutableArray
*array;
- (
void
)viewDidLoad
{
[
super
viewDidLoad];
array = [[
NSMutableArray
alloc] initWithCapacity:5];
[array release];
}
- (
void
) viewWillAppear:(
BOOL
)animated {
[array addObject:@
"Hello"
];
}
上面的代码就会出现 EXC_BAD_ACCESS
不过 NSZombieEnabled
对
*** -[__NSArrayM addObject:]: message sent to deallocated instance 0x6557370
如何设置
Xcode3
1.
2.
3.
Xcode4
你可以点击 Xcode4 菜单 Product -> Edit Scheme -> Arguments, 然后将点击”加号”, 将 NSZombieEnabled参数加到 Environment Variables 窗口中, 后面的数值写上 ”YES”.
或者在 Xcode4 菜单
- 定位EXC_BAD_ACCESS错误 设置NSZombieEnabled
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 【iphone开发】设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- IOS开发(46)之设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- IOS开发(46)之设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- NSZombieEnabled 解决EXC_BAD_ACCESS错误
- EXC_BAD_ACCESS & NSZombieEnabled & 设置Global Breakpoint定位错误代码所在位置
- IOS学习之设置NSZombieEnabled和MallocStackLogging解决EXC_BAD_ACCESS错误
- 用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误
- 解决EXC_BAD_ACCESS错误的一种方法--NSZombieEnabled
- 用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误
- 用NSZombieEnabled解决恼人的EXC_BAD_ACCESS错误
- 兼容 IE6、IE7、FF 的“加入收藏”
- 如何配置JVM的GC参数
- 如何编写优质的API文档
- 配置svn的问题,
- Java反射机制
- 定位EXC_BAD_ACCESS错误 设置NSZombieEnabled
- silverlight BackgroundWorker耗时操作会导致用户界面停止响应
- Java读写Properties文件
- android实现uc和墨迹天气那样的左右拖动效果
- WinCE中串口驱动及接口函数介绍
- ASP中动态使用MicrosoftReport详解
- JDK1.5中的线程池(java.util.concurrent.ThreadPoolExecutor)使用简介
- sql join的用法详解
- MyEclipse修改java字体大小及jsp字体大小