使用swift进行场景工具包内存管理

时间:2015-08-30 09:45:13

标签: ios swift memory-management scenekit

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

如果节点有强引用,ARC不会解除它。您可以将节点的声明切换为“弱”声音。 property或设置为nil对节点的任何强引用。由于“强”的不同行为而改为弱修复。并且“弱”。虽然对象具有强引用(简单var或let自动强大),但即使使用removeFromParent函数,它也不会被取出内存。