В настоящее время я создаю игру, которая требует, чтобы пользователь переключал контроллеры представления - при переключении между уровнями.
Доступ к уровню со страницы меню я использую модально. при возвращении на страницу меню я использую следующий код:
@IBOutlet weak var Menu: UIButton!
@IBAction func returntoMenu(_ sender: UIButton) {
self.dismiss(animated: true, completion: nil)
}
Это означает, что когда пользователь нажимает кнопку меню, он возвращается на страницу меню. Однако я заметил, что каждый раз, когда нажимается кнопка меню, использование памяти увеличивается, а не уменьшается. Это говорит о том, что уровень закрывается неправильно.
кто-нибудь знает, что может вызвать эту проблему,
заранее спасибо!
@Sh_Khan попробовал это и обнаружил, что это называется
Профилируйте (Cmd-I) ваше приложение и используйте инструмент «Утечки», чтобы определить, где используется память.
По умолчанию iOS использует автоматический подсчет ссылок. Это означает, что каждый объект имеет как минимум одну сильную ссылку с ранее созданным (сильным) объектом. Если ссылка удалена, сборщик мусора очищает эту часть памяти. Конечно, я имею в виду кучу. Если два элемента имеют свои собственные сильные связи друг с другом, это состояние означает «сохранить цикл». Так что память никогда не освободится. Вы должны опубликовать больше кода, чтобы найти проблему. Я только что описал простой случай. Существует множество состояний, когда приложение потребляет много памяти кучи.
вставьте распечатку в
deinit
внутри представленного виртуального канала, чтобы увидеть, вызывается или нет, когда вы отклоняете