gpt4 book ai didi

swift - sceneDidLoad 被调用两次?

转载 作者:IT王子 更新时间:2023-10-29 05:19:50 25 4
gpt4 key购买 nike

我使用 Xcode 8、swift 3 和启用了实体的游戏模板创建了一个 iOS 应用程序。我注意到我看到一些初始 Sprite 的节点数是双倍的,即使我只使用了一次 addChild。

我加了

override func sceneDidLoad() {
print(#function) ... }

查看代码,不知道为什么会被调用两次。

日志文件...

2016-09-20 10:21:31.482 MMDecon1[3295:791435] SKUtil.m: MGGetBoolAnswer is not available in the simulator.
sceneDidLoad()
sceneDidLoad()

我加了

override func didMove(to view: SKView) {..} 

并将我的初始化代码放在这里作为临时修复。

有谁知道为什么 sceneDidLoad() 在使用实体的默认游戏应用程序代码中被触发两次?

最佳答案

通常情况下,sceneDidLoad 只会被调用一次。但是,如果发送了内存警告,那么 UIViewController 会释放其场景并将其设置为 nil(如果 View Controller 不可见)。下次场景出现时, View Controller 将重新加载场景并再次调用 sceneDidLoad。

您必须假设 sceneDidLoad 可以被多次调用。

执行 didReceiveMemoryWarning 并记录或设置断点以查看发生了什么。

关于swift - sceneDidLoad 被调用两次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39590602/

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