1

我已经阅读了此处有关此主题的所有帖子,但似乎没有一个回答我的问题。

我的问题是 SKTexture/SKTextureAtlas 何时加载到内存中?

根据我的阅读,您需要保持对使用 [SKTexture preloadTextures: withCompletionHandler:] 加载到内存中的任何 SKTexture 或 SKTextureAtlas 的强引用,这样它就不会随 ARC 一起释放,这对我来说很有意义,因为对象会得到当没有人保留它时,在方法结束时释放。我不明白的是,具有强指针的 SKTexture 如何不加载到内存中,这不会使 [SKTexture preloadTextures: withCompletionHandler:] 变得多余和不必要,因为纹理已经加载到内存中。我显然错过了一些东西,所以任何见解都会很棒。

干杯!

4

1 回答 1

2

SKTexture 类参考是这样解释的:

纹理数据在以下情况下加载:

调用纹理对象的 size 方法。

另一种方法称为需要纹理的大小,例如创建一个使用纹理对象的新 SKSpriteNode 对象。

调用其中一种预加载方法(请参阅预加载纹理数据。)

在以下情况下准备渲染纹理数据:

使用纹理的精灵或粒子是正在渲染的节点树的一部分。

一旦 SKTexture 对象准备好进行渲染,它就会保持准备状态,直到删除所有对纹理对象的强引用。

于 2015-04-23T18:37:58.187 回答