2015-12-30 2 views
2

У меня проблемы с памятью, потому что каждый раз, когда я перехожу к просмотру вторичного контроллера (segue) и backs (я вызываю увольнение). Он не освободит память.Dismiss ViewController не освобождает память

В контроллере вида segue я сделал следующее в viewWillDisappear. Однако он не освобождает память.

override func viewWillDisappear() { 
     super.viewWillDisappear() 
     self.dismissController(self) 
     self.removeFromParentViewController() 
} 

Заранее благодарен.

+0

Проблема может быть не в отключенном контроллере, а в некоторых объектах, которые остаются в памяти. Вы пытались использовать любые инструменты, например «Утечки»? –

ответ

0

Когда контроллер не вызывает dealloc, это означает, что у вас есть некоторый цикл сохранения. Мы должны прочитать код, чтобы найти, где он хранится. Таким образом, вы можете прочитать этот блог и найти проблему с кодом:

Retain Cycle

0

Если вы используете настоящий вид контроллера, то вы должны использовать следующий код

self.dismissViewControllerAnimated(true, completion: nil) 

Если вы используете навигацию нажмите, затем используйте код ниже

self.navigationController?.popViewControllerAnimated(true) 
0

Возможно, существует цикл сохранения. Где-то в классе вы передаете «я» вне другого класса или структуры. Сделайте текстовый поиск для «self» в классе.

Если вам нужна помощь в поиске цикла, все линии, которые отдают «я» здесь.

Смежные вопросы