菜鸟教程小白 发表于 2022-12-12 10:48:46

ios - 静态菜单场景上的 SpriteKit 内存泄漏


                                            <p><p>我在静态菜单场景中遇到内存泄漏,似乎它发生在每个场景、游戏场景本身以及静态菜单/游戏结束上。内存似乎被正确释放(场景消失后内存减少)。</p>

<p>那些静态场景甚至不包含 <strong>update</strong> 回调定义。
这一切都在 <strong>didMoveToView</strong> 中设置,其中有一对 <strong>SKLabelNodes</strong> 和 <strong>SKSpriteNode</strong> 分配有 <strong>spriteNodeWithImage</strong>。</p>

<p>我曾尝试使用 dealloc 来监控场景是否被正确释放,而且它似乎不是问题的根源。</p>

<p>浏览 google 指向我在 stackoverflow 上创建的其他一些线程
<strong>spriteNodeWithImage</strong>
<strong>textureWithImage</strong>
可能会导致
- 内存泄漏
-奇怪的错误“CUICatalog:无效请求:请求子类型而不指定成语”</p>

<p>所以我尝试创建 <strong>UIImage imageNamed</strong> 然后放入纹理并在 SKTexture 中使用,实际上它已经删除了 CUICatalog 错误(无论如何,这似乎是一条没有被删除的愚蠢消息苹果 - 任何人都可以确认吗?)
但是根据内存泄漏,这根本没有帮助,无论如何,那个场景中的任何东西都是从一开始就创建的,所以我不知道为什么这个内存会以每秒 0.5mb 的速度不断增长。</p>

<p>期待任何提示。</p>

<p>最好的问候</p>

<p> <a href="/image/MHHmk.png" rel="noreferrer noopener nofollow"><img src="/image/MHHmk.png" alt="enter image description here"/></a> </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>其实我已经找到问题的根源了。
似乎调试物理会导致巨大的内存泄漏</p>

<pre><code>skView.showsPhysics = YES;
</code></pre>

<p>这不是什么大问题,因为它仅在调试时发生 <strong>showsPhysics=YES</strong>。 </p>

<p>不过很高兴知道。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 静态菜单场景上的 SpriteKit 内存泄漏,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36055220/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36055220/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 静态菜单场景上的 SpriteKit 内存泄漏