Я знаю, что есть много вопросов, подобных этому. Я все прочитал. Моя проблема очень проста.Viewcontroller Dealloc Method Never Lets
Я создал одно приложение для просмотра из файла xcode> нового проекта> приложения с одним представлением. Затем я добавил второй диспетчер uiview в раскадровке и новый класс viewcontroller с именем secondViewController. Я перетащил кнопку в main viewcontroller и ctrl + перетащил на secondViewController на раскадровку. Я сделал обратное в secondViewController. И просто добавил dealloc functins с nslog в файлы классов. Я также добавил слабые ссылки на uibuttons
Метод Dealloc для каждого контроллера просмотра никогда не вызывается при изменении вида.
ViewController.m
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSLog(@"viewDidLoad 1");
// Do any additional setup after loading the view, typically from a nib.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc {
NSLog(@"dealloc 1");
}
SeconViewController.m
#import "SecondViewController.h"
@interface SecondViewController()
@end
@implementation SecondViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)dealloc {
NSLog(@"dealloc 2");
}
@end
ARC включена.
Зомби, кажется, отключены по продукту> схема редактирования. Я использую xcode 6.2. При переключении устройств на экран переключается экранная память.
В чем проблема, я не смог найти?
dealloc A-контроллера является только вызывается, когда контроллер представления уволен. Поэтому ваш главный контроллер просмотра никогда не будет освобожден. И если у вас есть два контроллера вида, у вас нет ни одного приложения для просмотра. Как вы можете не касаться первоначального кода, если у вас есть кнопки и два контроллера? Предоставьте соответствующие данные или никто не сможет вам помочь. – rmaddy
Отлично, но в чем вопрос? Если вы покидаете этот контроллер представления (выталкиваете его или отклоняете), и его dealloc не вызывается, у вас есть цикл сохранения и утечка памяти, и вам нужно исправить это. Если вы не хотите говорить о конкретном коде, какую помощь вы ожидаете отсюда? – matt
Извините, я постараюсь изо всех сил. Я редактировал вопрос. @rmaddy –