gpt4 book ai didi

swift - 从函数内触发按钮是否会在堆栈上留下一些东西?

转载 作者:行者123 更新时间:2023-11-28 10:36:23 25 4
gpt4 key购买 nike

用户正在对着电脑玩游戏。用户执行某些操作后(例如,在名为 User Plays 的按钮按下例程中),将启用名为 Computer Play 的按钮。当用户按下它时,计算机播放,然后启用用户播放。所有例程基本上完成并等待用户输入。

相反,如果我从用户播放例程的底部自动触发计算机播放按钮,我会在堆栈上留下一些东西吗?我会构建大量的嵌套函数并最终耗尽堆栈空间吗?

最佳答案

没有。按钮 IBAction 方法与任何其他方法一样。他们被调用,执行代码,然后返回。它们的局部变量在堆栈上分配,然后在函数返回时从堆栈中弹出。

如果您的 IBAction 方法中存在内存泄漏,无论是通过按下按钮还是从其他方法调用该方法,它们都会发生。

如果没有内存泄漏,从另一个方法调用按钮的 IBAction 方法不会导致内存泄漏。

编辑:

请注意,如果您有无休止的递归代码(其中一个方法重复调用自身,或者方法 A 调用方法 B,方法 B 调用方法 A,方法 A 又调用方法 B,等等),那么您可以无休止地分配越来越多的堆栈内存,直到您堆栈溢出并导致程序崩溃。但是,您很快就会知道这一点。每次进入无休止的递归时,您的应用程序都会卡住几秒钟然后崩溃。

关于swift - 从函数内触发按钮是否会在堆栈上留下一些东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53412467/

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