У меня есть обычная архитектура. С одним UIViewController и многими subview. Я использую UIView как viewController и UIViewController для анимации перехода.Dealloc не вызвал на subview с ARC
UIView с большим количеством подсмотров, которые я нажимаю на главное окно, я удаляю FromSuperview и все в порядке, но метод subview не вызывает dealloc. Также я пытаюсь очистить объекты
- (void) dealloc { NSLog(@"ActivityShowVC dealloc"); [showView removeFromSuperview]; showView = nil; }
Это называется.
- (void) dealloc { NSLog(@"ActivityShowView dealloc"); [mainScroll removeFromSuperview]; [titleView setDelegate:nil]; [titleView removeFromSuperview]; titleView = nil; [photoView setDelegate:nil]; [photoView removeFromSuperview]; photoView = nil; [predictionView setDelegate:nil]; [predictionView removeFromSuperview]; predictionView = nil; [calendarView setDelegate:nil]; [calendarView removeFromSuperview]; calendarView = nil; [descriptionView setDelegate:nil]; [descriptionView removeFromSuperview]; descriptionView = nil; }
Но у этого есть некоторые проблемы.
Где вы определяете dealloc? – ldindu
Насколько я знаю, вам не нужно беспокоиться о том, чтобы удалить subviews из супервизора в методе dealloc. Все наблюдения будут удалены и освобождены, когда ваш контроль будет освобожден. Просто оставьте делегат = нуль в методе dealloc. ARC должна заботиться обо всем остальном. – Greg
Я решил. Проблема была в делетете, которая сохраняет мои взгляды! – outfoll