Pet*_*erK 3 iphone exc-bad-access objective-c
突然,我在这一行得到了EXC_BAD_ACCESS:
int retVal = UIApplicationMain(argc, argv, nil, nil);
Run Code Online (Sandbox Code Playgroud)
这是代码:
int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}
Run Code Online (Sandbox Code Playgroud)
我甚至不知道从哪里开始看?
有人可以帮忙吗?
con*_*are 10
对于任何EXC_BAD_ACCESS错误,您通常会尝试向已发布的对象发送消息.跟踪这些问题的最佳方法是使用NSZombieEnabled.
这实际上是从不实际释放一个对象,而是通过将其包装为"僵尸"并在其中设置一个标志,表示它通常会被释放.这样,如果你再次尝试访问它,它仍然知道在你犯错之前它是什么,并且通过这些信息,你通常可以回溯看看问题是什么.
当调试器有时会破解任何有用的信息时,它特别有助于后台线程.
但是,非常重要的是,您需要100%确保这仅在您的调试代码中,而不是您的分发代码.因为什么都没有发布,你的应用程序将泄漏,泄漏和泄漏.为了提醒我这样做,我把这个日志放在我的appdelegate中:
if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled"))
NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2802 次 |
| 最近记录: |