我正在使用Xcode 8
和Swift 3
开发SpriteKit
游戏。这是我的第二个stackoverflow问题,它是我的第一个(Memory Leaks by Subclassing SKScene)的扩展。它仍然没有答案,但我的问题的焦点发生了变化,因此我决定提出一个新问题,而不是编辑旧问题。
我的问题的简短版本:
在为一个干净的新项目添加几行非常简单的Swift
代码之后,调试内存图显示了一个涉嫌泄漏的对象的神秘列表。
是否有可能只需要更改可视内存调试器的配置?
长版:
在我的应用程序开发的某些时候,我注意到Debug Memory Graph显示了泄漏对象的列表。经过一段时间的调试后,我意识到只需在新的SpriteKit
项目中添加一个极短且简单的代码片段,我就可以重现类似的调试器输出:
// GameScene.swift
import SpriteKit
import GameplayKit
class GameScene: SKScene {
/*** Begin of Code Snippet ***/
enum MyEnum {
case a
case b
}
private var myVar : MyEnum?
/*** End of Code Snippet ***/
private var label : SKLabelNode?
private var spinnyNode : SKShapeNode?
...
这就是全部!泄漏对象列表如下所示:
在模拟器中运行项目时,我总是得到这样的列表。在我的iPhone上运行项目时,我必须至少在后台推送应用程序一次以触发泄漏。
我不认为我的Xcode
安装有问题,因为我可以在两台不同的机器上重现问题。它也无助于清理项目,重置模拟器和/或删除DerivedData文件夹的完整内容。
我还尝试了解有关可视内存调试器的更多信息(例如,通过观看WWDC 2016中的视频“使用Xcode进行Visual Debugging”),但我找不到任何解决问题的提示。
顺便说一句:我的第一个问题(Memory Leaks by Subclassing SKScene)解决了另一个触发问题的代码段。
我在这里完全无助。是否有人与新的Visual Memory Debugger有类似的问题?它可能是调试器中的错误吗?