gpt4 book ai didi

ios - 不会死的NS僵尸

转载 作者:行者123 更新时间:2023-11-29 10:54:26 24 4
gpt4 key购买 nike

我正在拼命寻求帮助,解决困扰我的事情......

顺便说一句,这都在 ARC 下。

我有一个配置文件屏幕 (UserProfileVC),然后您单击该屏幕上的一个按钮,它会显示 SettingsVC。 SettingsVC 保存在 UserProfileVC 的 settingVC ivar 中,当我响应按钮点击时,我检查 settingsVC 是否为 nil,然后从 Storyboard创建它,并呈现它。

- (IBAction)handleSettingsButtonPressed:(id)sender {
if (!settingsVC) {
settingsVC = [self.storyboard instantiateViewControllerWithIdentifier:@"UPSettingsVC"];
settingsVC.model = self.model;
settingsVC.horizontalCoverPresentingVC = self;
}

[self horizontalCoverTransitionToViewController:settingsVC duration:0.35f];
}

当我关闭 SettingsVC 时,除了从其父 View 中删除 View 外,我什么都不做(这与 #horizo​​ntalCoverTransitionToViewController:duration: 方法的作用基本相反)。我从来没有将它设置为零。

我可以从 UserProfileVC 导航到 SettingsVC 并返回... EXACTLY ONCE。如果我尝试返回 SettingsVC,我会点击

if (!settingsVC) {...}

block,并且不输入(说明settingVC还在),然后我一打

[self horizontalCoverTransitionToViewController:settingsVC duration:0.35f];

我收到 EXC_BAD_ACCESS (code=1...) 错误。

如果我打开 Zombies,我可以看到 SettingsVC 变成了 Zombie。

我什至将 -fno-objc-arc 添加到该类的编译器标志,然后实现 #release 并在其中放置一个断点。

发布是从关闭 SettingsVC 的代码中调用的,但我的应用程序中几乎所有其他 VC 都使用了完全相同的代码,并且它们都没有导致发布触发。

有人可以告诉我在哪里查看、如何调试,甚至可以提供一些使用 Instruments 解决问题的指示吗?

我开始怀疑一些底层框架错误,但如果我制作一个小示例应用程序来演示这个问题,它工作正常,所以这个类必须有一些特殊的东西。

感谢任何输入。

最佳答案

If I turn on Zombies, I can see that SettingsVC has become a Zombie.

使用 Instruments 记录引用计数操作(Allocations)——您也可以启用 Zombies。当您的程序停止时,在对象列表中找到您的 VC,并查看记录的该实例的引用计数操作。 通常很清楚在哪里引入了不平衡,尽管可能有比您预期更多的操作。

关于ios - 不会死的NS僵尸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060102/

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