如何从内存中删除Subclassed SKNode?

时间:2015-07-22 18:42:57

标签: ios swift sprite-kit

我创建了一个" SPriteKitButton" SKNode子类在一个单独的Swift文件中,用于在SpriteKit中制作类似自定义按钮的对象。我初始化一个新的按钮如下:

self.homeButton = SpriteKitButton(buttonUnpressedImage: "homeUnpressed.png", buttonPressedImage: "homePressed.png", buttonName: "homeButton", scale: 1, buttonAction: returnHome)
self.addChild(homeButton)

按钮效果很好,但是当我使用presentScene更改场景时,SpriteKitButton子类不会从内存中删除。我使用contentsOfFile方法在子类中设置纹理。我打电话给

homeButton.removeFromParent
在willMoveFromView中,但经过测试后,我发现我的按钮停留在内存中,并且每次更改场景时添加一个~1~2 mb的小按钮。

我没有在SpriteKit中使用子类对象的经验,那么如何在场景发生变化时确保我的自定义按钮被删除?

提前致谢!

1 个答案:

答案 0 :(得分:3)

self.homeButton = nil

如果您使用强引用

,请使用此选项