定位EXC_BAD_ACCESS错误 设…
来源:互联网 发布:网络话费充值卡合法吗 编辑:程序博客网 时间:2024/05/16 18:31
我们做iOS
比如你对已释放的对象发送消息时就会出现,EXC_BAD_ACCESS,再如release
比如
static
NSMutableArray
*array;
-(
void
)viewDidLoad
{
[
super
viewDidLoad];
array= [[
NSMutableArray
alloc]initWithCapacity:5];
[arrayrelease];
}
- (
void
)viewWillAppear:(
BOOL
)animated{
[arrayaddObject:@
"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 菜单
Xcode4
另外再说一下,如果没有为
static
NSMutableArray
*array;
-(
void
)viewDidLoad
{
[
super
viewDidLoad];
array= [[
NSMutableArray
alloc]initWithCapacity:5];
[arrayrelease];
[arrayaddObject:@
"Hello"
];
NSLog
(@
"%@"
,[array objectAtIndex:0]);
}
但是一旦加上了NSZombieEnable
*** -[__NSArrayM addObject:]:message sent to deallocated instance 0x6557370
即使该array
- CocoaDev,个人觉得讲Cocoa技术十分专业的网站之一,下面的链接详细讲了讲NSZombieEnable的原理。http://www.cocoadev.com/index.pl?NSZombieEnabled
- 苹果官方的Mac OS X Debugging Magic,详细讲述了最为一个高级苹果程序员应该具备的调试技巧
http://developer.apple.com/library/mac/#technotes/tn2004/tn2124.html - 其实还可以在Instruments中开启NSZombie选项,这样就可以在Instruments中直接查看crash时候的callstack了:http://www.markj.net/iphone-memory-debug-nszombie/
最后提醒NSZombieEnabled只能在调试的时候使用,千万不要忘记在产品发布的时候去掉,因为NSZombieEnabled不会真正去释放dealloc对象的内存,一直开启后果可想而知,自重!
本文链接 http://unmi.cc/nszombieenabled-locate-exc_bad_access-error,来自 隔叶黄莺 Unmi Blog
- 定位EXC_BAD_ACCESS错误 设…
- EXC_BAD_ACCESS的错误定位
- NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 定位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 错误
- 定位EXC_BAD_ACCESS错误和检查内存泄漏
- 【iphone开发】设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- 如何很快定位到EXC_BAD_ACCESS错误
- IOS开发(46)之设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- IOS开发之设置 NSZombieEnable 定位EXC_BAD_ACCESS错误
- IOS开发(46)之设置 NSZombieEnabled 定位 EXC_BAD_ACCESS 错误
- Ubuntu 12.04 Eclipse设…
- 如何排查EXC_BAD_ACCESS错误
- iphone touchjson
- 初知 敏捷开发
- assert()函数用法总结
- 敏捷开发有什么好处?
- iPhone消息推送机制实现与探…
- 定位EXC_BAD_ACCESS错误 设…
- unrecognized selector sent to in…
- unrecognized selector sent to in…
- 当程序出现“EXC_BAD_ACCESS”时
- weblogic忘记密码,重置密码
- Objective-C的self.用法的一些总结
- :TableView UI
- 多线程编程
- 售票 多线程