gpt4 book ai didi

iphone - EXC_BAD_ACCESS 在 main.m 中

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:30 25 4
gpt4 key购买 nike

突然我在这条线上得到了 EXC_BAD_ACCESS:

int retVal = UIApplicationMain(argc, argv, nil, nil);

代码如下:

int main(int argc, char *argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, nil);
[pool release];
return retVal;
}

我什至不知道从哪里开始寻找?

有人可以帮忙吗?

最佳答案

对于任何 EXC_BAD_ACCESS 错误,您通常是在尝试向已释放的对象发送消息。追踪这些的最佳方法是使用 NSZombieEnabled .

它的工作原理是从不真正释放一个对象,而是将它包装成一个“僵尸”,并在其中设置一个标志,表明它通常会被释放。这样,如果您尝试再次访问它,它仍然知道您犯错误之前的情况,并且利用这一点信息,您通常可以回溯以查看问题所在。

当调试器有时会在任何有用信息上乱码时,它在后台线程中特别有用。

非常重要的是要注意但是,您需要 100% 确保这仅在您的调试代码中而不是您的分发代码中。因为永远不会发布任何东西,所以您的应用程序会泄漏、泄漏和泄漏。为了提醒我这样做,我将此日志放在我的 appdelegate 中:

if(getenv("NSZombieEnabled") || getenv("NSAutoreleaseFreedObjectCheckEnabled"))
NSLog(@"NSZombieEnabled/NSAutoreleaseFreedObjectCheckEnabled enabled!");

关于iphone - EXC_BAD_ACCESS 在 main.m 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6349967/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com