【发布时间】:2013-12-18 15:31:10
【问题描述】:
我有一个主菜单,它通过模态 segue 启动带有 SKView/SKScene 的视图控制器。然后我调用dismissViewControllerAnimated,它将应用程序返回到主菜单,但我仍然可以听到来自SKScene 的声音效果。当我多次重新启动 SKScene 时,应用程序最终崩溃了。
我已经尝试过一个堆分析教程 (http://www.friday.com/bbum/2010/10/17/when-is-a-leak-not-a-leak-using-heapshot-analysis-to-find-undesirable-memory-growth/),但我似乎没有得到任何结果。我确保释放所有强大的@properties...
关于可能导致此问题的任何想法?任何代码/屏幕截图会有帮助吗,或者我可以提供任何信息来帮助缩小问题范围吗?
【问题讨论】:
-
ARC 已启用?检查所有强实例,您是否将它们中的任何一个存储在 skview/skscene 或 sk 视图控制器实例之外?另一个常见错误是图结构常见的保留循环,例如,当一个节点保持对其父节点或兄弟节点之一的强引用时(使这些节点变弱)。
-
是的,使用 ARC。关于。您的第二个问题,任何具有强实例的类在 viewDidUnload 或 dealloc 中都将它们设置为 nil,这还不够吗?我将深入研究代码以调查您的最后一点。
-
不幸的是,修复所有我能找到的保留周期似乎没有帮助......
-
您是否尝试过以另一种方式解散 VC - 就像放松转场一样?
-
原来是因为这个:cocoa.tumblr.com/post/62812809698/… - @LearnCocos2D 随意将参考周期作为答案
标签: ios objective-c sprite-kit