gpt4 book ai didi

ios - 使用 unwind segues 时未在所有 View Controller 上调用 Dealloc

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

我正在设计一个有 6 个 View Controller 的游戏。

我使用模态 segues 向前导航,并使用 unwind segues 向后导航。

通过 View Controller 的游戏流程是 A -> B -> C -> D -> E -> F。

当我尝试从 F 展开到 A 时,只在 B 和 C 上调用 dealloc。这意味着每次玩游戏时使用的内存都在不断增加。

我最初认为问题是由于某些东西被保留导致 dealloc 在 View Controller D 和 E 上不被调用。但是,如果我将 unwind segue 设置为从 F 到 D dealloc 被调用为 F 和 E 这似乎可以排除这个问题。

我还有一条直接从 View Controller A 到 F 的路由。当我在这种情况下展开时,dealloc 会在 F 上正确调用。

View Controller F 和 C 在 A 上调用相同的展开操作。我认为这不是原因,因为我已尝试将其更改为对每个 View Controller 使用独特的展开操作。

对造成这种情况的原因有任何想法吗?我复制了下面使用的一些代码。请让我知道哪些其他代码(如果有的话)有助于解决此问题。任何帮助将不胜感激。

展开 Action 如下:

- (IBAction)unwindToMainMenu:(UIStoryboardSegue *)unwindSegue
{}

调用以触发从 View Controller F 到 A 的展开转场:

[self performSegueWithIdentifier:@"ReturnToMainMenu" sender:self];

最佳答案

根据你的描述,问题应该在D上。可能 D 是从其他人那里保留的,因此当您从 F 直接转到 一个未被释放它继续保留 E 保留F

所以,专注于 D ;)

关于ios - 使用 unwind segues 时未在所有 View Controller 上调用 Dealloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24590752/

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