#ios #objective-c #memory #memory-management #memory-leaks
#iOS #objective-c #память #управление памятью #утечки памяти
Вопрос:
Кажется, я не могу найти никаких решений для этого. Я сделал все мои объекты «слабыми» в обоих рассматриваемых контроллерах представления. Я включил функции увольнения и даже функцию ‘removeFromSuperview’. Я пробовал их все, но безуспешно. Я также попытался сделать действие кнопки «модальным», «нажимным» и т. Д. Ни один из них не имел никакого значения.
По сути, когда я перехожу от контроллеров, память, кажется, просто накапливается все больше и больше. На обоих контроллерах я просто использую WebView. Я набираю более 100 МБ памяти после некоторого времени навигации между представлениями. В конечном итоге приложению не хватает памяти и происходит сбой.
Как мне либо очистить всю память, накопленную приложением, либо правильно отключить / отключить все неактивные контроллеры просмотра и очистить всю связанную память?
Комментарии:
1. Переопределите метод dealloc для ViewController, который вы отклоняете, и проверьте, вызывается ли он.
2. Вы передаете ссылки от одного объекта к другому, и это, вероятно, создает цикл подсчета ссылок. Главное, чего не следует делать, это чтобы какой-либо контроллер представления удерживал ссылку на другой контроллер представления. Просто не делайте этого, и вам будет намного лучше.
3. Как мне вручную переопределить метод dealloc?
Ответ №1:
Вот как вы переопределяете метод dealloc
- (void)dealloc {
[_object release];
[super dealloc];
}
где _object — это любое свойство, которое вы инициализировали.