Xcode的可视内存调试器配置错误或是一个错误?

时间:2016-12-12 11:59:16

标签: swift xcode debugging memory-leaks

我正在使用Xcode 8Swift 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?
        ...

这就是全部!泄漏对象列表如下所示:

List of Leaking Objects

在模拟器中运行项目时,我总是得到这样的列表。在我的iPhone上运行项目时,我必须至少在后台推送应用程序一次以触发泄漏。

我不认为我的Xcode安装有问题,因为我可以在两台不同的机器上重现问题。它也无助于清理项目,重置模拟器和/或删除DerivedData文件夹的完整内容。

我还尝试了解有关可视内存调试器的更多信息(例如,通过观看WWDC 2016中的视频“使用Xcode进行Visual Debugging”),但我找不到任何解决问题的提示。

顺便说一句:我的第一个问题(Memory Leaks by Subclassing SKScene)解决了另一个触发问题的代码段。

我在这里完全无助。是否有人与新的Visual Memory Debugger有类似的问题?它可能是调试器中的错误吗?

0 个答案:

没有答案