gpt4 book ai didi

iOS 编程 : 'super dealloc' crashes app

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:26 32 4
gpt4 key购买 nike

这是我第一次在这个网站上提问。作为一名业余开发人员,我总能在这个网站上找到我的问题的答案,但我找不到解决我当前问题的答案。

在我的 iPad 应用程序中,我从 rootView 调用了一个新的 UIViewController:

DisplayTheMapViewController_iPad *root = [[DisplayTheMapViewController_iPad alloc] init];
displayTheMapViewController=root;
[[self navigationController] pushViewController:displayTheMapViewController animated:YES];
[root release];

当我从该 View 返回到主视图时,应用程序崩溃(这需要一分钟左右的时间,在此之前一切正常,但它总是会发生),并出现自动释放池错误。

当我评论 [root release] 时,应用程序保持事件状态,但随后我遇到了一个不同的问题:在我第二次访问 View (不是第一次!)时,当调用一个在 View 中放置弹出窗口的方法时,应用程序崩溃,我收到以下错误:

“无法从没有窗口的 View 中显示弹出窗口。”

我一定做错了什么。提前感谢您的任何建议。

最佳答案

这一行有点令人费解:

displayTheMapViewController=root;

我猜 displayTheMapViewController 是一个实例变量?如果是这样,您将为其分配 root 权限,但不会保留 root 权限。当该 Controller 从导航堆栈弹出时,导航 Controller 将释放它,导致它被释放,因为没有其他东西保留它。 displayTheMapViewController 将指向一个无效的对象。也许你的意思是:

self.displayTheMapViewController=root;

如果 displayTheMapViewController property 设置为保留其内容,则可以防止上述悬空指针问题。

关于iOS 编程 : 'super dealloc' crashes app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6579048/

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