【发布时间】:2014-04-24 22:32:29
【问题描述】:
我有一个 SKScene,它在游戏过程中的任何时候都没有被释放......我已经取消了场景,将它从其父视图中删除,并且 dealloc 方法仍然永远不会被命中。场景也设置为弱(尽管在 iPhone 5s 上,如果设置为弱,它会立即取消分配场景)。最终,由于后台运行的场景内存不足,游戏崩溃了。
【问题讨论】:
-
所以你已经完成了[spriteView presentScene:nil];?能否请您发布一些代码。
-
您很可能有一个保留周期。运行分析构建和仪器以找到它。如果您将自定义节点子类添加到场景中,并且该子类对场景具有强引用,则保留循环的常见情况。节点保留场景,场景保留节点。同样,如果场景的两个子节点彼此具有强引用。
-
谢谢你们。原来我有一些本应很弱的强引用....
-
我也遇到了同样的问题——这些强引用在哪里?在 .h 中是非 ..
-
我的主要是作为属性的 UIView。其中一些在 .m 中,一些在 .h 中。不过老实说,这一切都取决于您拥有的 @property 值。
标签: memory-management sprite-kit skscene