繁体   English   中英

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

[英]iOS/Swift/Spritekit Do scenes delete data after I present a new scene within that viewcontroller?

因此,对于Obj,此问题有部分答案。 C.我只是在问Swift内相同想法的机制。 此外,我想比较和对比切换ViewController和切换场景,作为在游戏与其MainMenu之间切换的一种方式。 在SpriteKit中呈现场景而不丢弃前一个场景?

在上一节中,作者说,当我在该ViewController呈现一个新场景时,这些场景被完全丢弃了,在spritekit / swift中是真的吗? 我正在做的是,我有几个场景(GameScene,MainMenuScene,OptionsScene等),我经常在它们之间进行切换,以作为完全切换视图的一种方式。 这会删除与该GameScene实例相关联的所有数据吗? 我不希望这些数据的剩余部分会随着时间的推移而降低我的游戏速度。 此外,有些人建议出于MainMenu之类的想法而切换ViewController而不是场景。每种方法的优点和缺点是什么?

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

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

如果您想确切地了解游戏中不同点上存在哪些对象,可以使用分配工具。 您可以在XCode> Open Developer Tool> Instruments下找到它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM