也许这很容易,但我迷路了。
我有一个项目,我必须制作一个全屏动画,使用8个jpgs来模拟页面打开。所以我正在做的是:
当我第一次翻页时,它会占用大量内存,但是当我在其上运行removeFromParent时,内存会继续使用。
我的.m文件在顶部声明:
SKSpriteNode *pageTurnNode;
因为我希望能够在两种方法中轻松引用它。
如何摆脱所有这些纹理等等?
答案 0 :(得分:3)
纹理可能无法立即从内存中释放。 Apprantely Sprite Kit采用了缓存系统。它会在看起来合适时删除缓存的纹理。
那和@prototypical所说的。
答案 1 :(得分:2)
这似乎很有价值,我觉得这与这个问题有关。
由+ textureWithImageNamed分配的底层内存:可能或可能 切换到新的SKScene时不会(通常不会)发布。您 不能依靠那个。 iOS释放缓存的内存 + textureWithImageNamed:或+ imageNamed:当它看起来合适时,例如当它检测到内存不足的情况时。
如果您希望在完成后立即释放内存 纹理,你必须避免使用+ textureWithImageNamed:/ + imageNamed:。 创建SKTextures 的替代方法是:
- 使用+ imageWithContentsOfFile创建UIImages:
- 通过调用SKTexture / + textureWithImage :( UIImage *)从生成的UIImage对象创建SKTextures。
醇>
从这个答案中拉出来: iOS 7 Sprite Kit freeing up memory