Я знаю, что по этой теме было задано много вопросов, но прежде чем объявить, что это дубликат, прочитайте мой вопрос, спасибо.
Я iOS
разработчик со средним уровнем опыта, но к счастью или к сожалениюникогда не сталкивался с проблемами утечки памяти, с которыми я сталкиваюсь сейчас.Я дал не написанное мной приложение, в которое встроены карты Google, в нем было много проблем, включая утечки памяти, приложение использует шаблон делегата, и я исправил классы делегатов с кодом, подобным этому
@objc protocol myDelegate {
// delegate stuff
}
class myClass: UICollectionView {
weak var delegate: myDelegate? = .none
}
Я много читал об отладке графа памяти, поэтому использовал его для поиска утечек.Теперь, поделившись некоторой датой, которую я собрал, используя отладчик графа памяти , это изображение, где я обнаружил признаки утечки памяти , но странно, что нет ни одного указания на файлы, которые мы написали, новсе указания, показывающие файлы из ядра или библиотек, которые мы используем, я не понял, тогда я обнаружил this, это блок UserNotificationCenter , я видел в коде, что он никогда не освобождает уведомления, которые были опубликованы,Является ли это необходимым для их освобождения, после всего этого, приложение имеет сущности CoreData, и я обнаружил это, все эти таблицы используются в приложении , я не смог понять, как они могут быть утечкой памяти, и, наконец, эти это целый блок блока malloc, который я опять не знаю, что это значит.это как-то связано с утечкой памяти, ниже на изображениях показано потребление памяти, просто переключаясь с 2 или 3 экранов, PS на этих экранах UICollectionViews
и UITableViews
, только что переключился с домашнего на один новый экран и переключались между 3 экранами только один раз. Я надеюсь, что смогу получить помощь от этой платформы.Спасибо