Spritekit动画纹理循环在每次启动时分配内存

时间:2015-04-03 11:20:16

标签: ios swift animation memory-leaks sprite-kit

我的应用程序菜单中有动画。我在视图控制器中初始化它,存储在一个数组中,然后访问并运行这样的动画:

let animationFrames = SKAction.animateWithTextures(animationTextures.animationFrames[0], timePerFrame: 0.05)
let repeatAnimation = SKAction.repeatActionForever(animationFrames)

animation = SKSpriteNode(texture: animationTextures.firstFrame[0])
animation.size = CGSizeMake(self.frame.size.width, 150)
animation.position = CGPoint(x: CGRectGetMidX(self.frame), y: self.frame.size.height - 75)
animation.runAction(repeatAnimation)

问题是它分配的内存太多了。它类似于4-5MB动画,但是从运行应用程序时我可以看到,每次动画重新开始时都会分配内存,并且在5-6次迭代后它最终会占用大约50MB,然后它不会分配任何额外的内存

在iPhone 5及更高版本上没问题,因为有足够的内存来处理应用程序,但由于我没有这一个动画,但有一对它最终会分配200MB并导致我的应用程序在iPhone 4和4s上崩溃。

0 个答案:

没有答案