iOS / Swift / Spritekit在我在该viewcontroller中呈现新场景后,场景是否会删除数据?

时间:2015-05-08 00:09:40

标签: ios iphone swift uiviewcontroller sprite-kit

所以Obj对这个问题有部分答案。 C.我只是在Swift中询问相同想法的机制。此外,我想比较和对比切换ViewControllers和切换场景作为在游戏和MainMenu之间切换的方式。 Presenting a scene in SpriteKit without discarding the previous?

在上一节中,作者说当我在ViewController中呈现一个新场景时场景被完全丢弃了,这在spritekit / swift中是否正确?我正在做的是我有几个场景(GameScene,MainMenuScene,OptionsScene等)我不断切换作为一种完全切换视图的方式。这会删除与该GameScene实例相关的所有数据吗?我不希望任何遗留下来的数据会随着时间的推移而减缓我的游戏速度。此外,有些人建议切换ViewControllers而不是MainMenu等的场景。每种方法的正面和负面是什么?

1 个答案:

答案 0 :(得分:1)

是的,除非您有某种强大的参考周期,否则它会在您呈现新场景时删除与场景关联的数据。如果您有一个强大的参考周期,您的场景和相关对象将保留在内存中,您无法访问它们。不好。

判断场景是否从内存中移除的一种简单方法是在场景中放置deinit方法,并在其中打印内容。如果调用deinit,则会删除您的场景。

如果您想要在不同的位置准确查看游戏中存在哪些对象,可以使用分配工具。 你可以在 XCode>下找到它。打开开发人员工具>仪器