Итак, я написал приложение в swift/xcode, и теперь я на финише, убедившись, что все в порядке. Используя индикатор использования памяти Xcode, я заметил, что мое базовое использование памяти увеличивается на 200-300 (кБ) или около 0,25 (МБ), когда я играю уровень, а затем возвращаюсь к основной сцене. Тогда я пошел на инструменты и посмотрел на сохраняющиеся данные. Я думаю, что у SpriteNode есть runBlock, создающий сильную ссылку и найденные экземпляры текстур с большим количеством ссылок, вероятно, связанных с анимацией взрыва, и некоторые источники звука не были выпущены после вызова SKAction.playSoundFileNamed(...)
. В любом случае, я пробовал различные исправления, не уточнил, звучит ли его звуковая анимация, взрывная анимация или что-то еще, но она кажется универсальной, после любого уровня, который, наряду с инструментами, заставляет меня поверить в свою одну из двух (анимация взрыва или playoundfile, который создает сильный опорный цикл). Но тогда часть меня чувствует, что я преследую призрак, потому что у меня действительно не было проблем с производительностью. Я работаю в диапазоне 20-50 МБ, поэтому добавление .2 МБ на уровень действительно не влияет ни на что, даже если оно делает это дюжину раз (в игре всего 9 уровней). Хотя, будучи перфекционистом, это сводит меня с ума. Таким образом, более практично:Насколько велика сделка - небольшая утечка памяти?
Помогает ли Apple заботиться о небольшой утечке памяти? Он проверяет это?
Если вы подозреваете, что звук является проблемой, попытались ли вы удалить этот вызов 'playSoundFileNamed()' и снова проверить на утечку? – Stephen