使用swift的场景工具包内存pipe理

我很困惑,我是如何使用swift释放场景中的内存。 每当我从collada文件创build一个SCNNode,它会导入几何体,创build一个物理对象,并从一个jpg文件设置一个材质。 由于某些原因(即使文件大小在300k以下)创build一个新的对象时,这占用了10MB的RAM,但无论如何。 每当它从父节点中删除,零内存释放,我不明白为什么。 我可以使用哪些代码来真正删除对象? 我找不到关于这个问题的任何文件。 这只是一个普遍的问题,所以在这里不需要代码。

所以我发现我需要做的是将我的游戏对象上的纹理设置为零,然后将其从父项中移除。 就像一般的规则,在删除节点之前,我开始将所有纹理设置为零。 无论如何,这解决了我的记忆问题。

如果节点有强烈的引用,ARC将不会释放它。 您可以将节点的声明切换为“weak”属性,或者将节点的任何强引用设置为零。 由于“强”和“弱”的不同行为,转向弱解决scheme。 虽然一个对象具有强引用(简单的var或let自动强),但即使使用removeFromParent函数,它也不会被带出内存。