gpt4 book ai didi

ios - 对象可能在被释放后被修改

转载 作者:IT王子 更新时间:2023-10-29 08:18:28 25 4
gpt4 key购买 nike

我正在 iPhone 上做一个项目。我现在从另一个 UIViewController 启动一个新的 UIViewController,然后在它们之间切换。这是我的代码。

iGreenAppDelegate *delegate = [UIApplication sharedApplication].delegate;
if(checkInViewController) {
[checkInViewController release];
checkInViewController = nil;
}
checkInViewController = [[CheckInViewController alloc] initWithCheckpoint:checkpoint];

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.8];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:[delegate window] cache:YES];
[[delegate rootTabBarController].view removeFromSuperview];
[[delegate window] addSubview:checkInViewController.view];
[UIView commitAnimations];

问题是我第二次启动 UIViewController,我想释放它以避免造成内存泄漏。调试器显示

iGreen(916,0x3f60348c) malloc: error for object 0x130350: incorrect checksum for freed object - object was probably modified after being freed. set a breakpoint in malloc_error_break to debug

这很奇怪,因为其他部分的类似代码不会返回此类错误。此外,我尝试了自动释放,但程序会立即崩溃,调试器说我正在修改最终层。

我整晚都在研究这个问题,但仍然对此感到困惑。

最佳答案

在 malloc_error_break 中设置断点进行调试。

这样做并发布回溯。

通常,这意味着您损坏了内存,但也可能意味着您有一个过度释放的对象。也尝试构建和分析。

关于ios - 对象可能在被释放后被修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6317200/

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