sceneDidLoad被调用两次?

Joh*_*Mac 15 xcode sprite-kit swift ios10

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

我补充道

override func sceneDidLoad() {
print(#function) ... } 
Run Code Online (Sandbox Code Playgroud)

代码,不知道为什么这个被调用两次.

日志文件...

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

我补充道

override func didMove(to view: SKView) {..} 
Run Code Online (Sandbox Code Playgroud)

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

有没有人知道为什么使用实体使用默认游戏应用程序代码两次触发sceneDidLoad()?

Rac*_*wat 3

通常,sceneDidLoad 只会被调用一次。但是,如果发送内存警告,则 UIViewController 会释放其场景,并在视图控制器不可见时将其设置为 nil。下次场景出现时,视图控制器将重新加载场景并再次调用 sceneDidLoad。

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

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