#ios #swift #memory-leaks #uiviewcontroller #uikit
Вопрос:
Когда я хочу нажать ProfileViewController
на навигационный контроллер, после выскакивания ProfileViewController
он протекает, и я вижу просочившиеся объекты в MemoryGraph. каждый раз, когда я открываю ProfileViewController
новый экземпляр объекта, он создается и не освобождается.
Толкающий фрагмент:
let storyboard = UIStoryboard(name: "Home", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ProfileViewController")
self.navigationController?.pushViewController(vc, animated: true)
после появления графика сохранения ссылок являются:
НО если я present
vc, вместо того, чтобы нажимать, утечка памяти исчезнет. поэтому, если была проблема с сохранением сильной ссылки на вк, она не должна была отличаться presenting
!
представление фрагмента:
let storyboard = UIStoryboard(name: "Home", bundle: nil)
let vc = storyboard.instantiateViewController(withIdentifier: "ProfileViewController")
self.present(vc, animated: true)
что случилось?
Комментарии:
1. Возможно, это ошибка профилировщика, но прежде всего я бы попытался найти проблему в вашем коде. Попробуйте прокомментировать весь код
ProfileViewController
и любой код , который каким — либо образом взаимодействует с ним, если он все еще протекает-тогда, вероятно, не о чем беспокоиться.2. @Филип хорошо, я попробую и дам тебе знать. проблема заключается в увеличении использования памяти в профилировщике!
3. @Филип, теперь это — класс ProfileViewController { //ничего } — и убедился, что ничто не ссылается на него. даже я прокомментировал метод «childCoordinators» и «store» в своем координаторе, если вы знакомы с координаторами.
4. по-прежнему не освобождается. возможно ли, что профилировщик показывает ошибку. я тоже тестировал на реальном устройстве!
5. Это наверняка может быть ошибка профиля. Если ваш контроллер представления пуст и больше нигде не используется, я думаю, что так оно и есть. Но, может быть, кто-то другой даст вам другой совет, все равно трудно сказать, не видя кода