Я разрабатываю приложение для iOS, которое отображает более 1000 изображений, хранящихся в памяти, после использования в течение некоторого времени сбой приложений из-за утечки памяти.Ошибка приложения из-за утечки памяти - Swift
Я попробовал инструмент «Профиль», но не мог понять, где проблема, я показываю эти изображения как в tableView, так и в Icarousel. прокрутка через приложение, память увеличивается, но, похоже, не выпущена.
вещи я уже сделал:
- Изменение размера изображений (это просто задержка аварии).
- Очистка словарей и источников данных - не имеет значения.
- Я пробовал использовать «contentsOfFile» вместо свойства «named» при создании образа - также не имеет значения.
- Очистка изображения в функции многократного использования в таблицеViewCell -nothing changed-.
Примечание: Я использую AdMob
, но даже когда я не использую его, памяти до сих пор просачивается.
Я не уверен, как кто-то может помочь вам, не догадываясь. Как вы даже знаете, что это изображения, вызывающие проблему, если вы не знаете, что происходит? Например, в вашем коде может быть логическая ошибка, и у вас есть Заброшенная память. Я могу только рекомендовать вам выполнить поиск в Интернете для «iOS find memory leak» и посмотреть, какие общие учебные пособия доступны. Кроме того, просмотрите документацию Apple по выполнению «анализа памяти»: https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/CommonMemoryProblems.html#//apple_ref/doc/uid/TP40004652-CH91- SW1 –
Вы упомянули, что используете много изображений - Вы выполняете кеширование изображений? Если не пытайтесь использовать SDWebImage. В большинстве случаев приложения с большим количеством изображений запускаются в ошибки OOM из-за неправильного кэширования изображений. –
Robotic Cat: Спасибо, я не уверен, что изображения являются причиной аварии, но использование приложения с меньшим количеством изображений решает часть проблемы. Я пробовал разные подходы, не связанные с изображениями, но ничего не менял. Я попробую то, что вы предложили, спасибо. – Noura