Я немного пытаюсь выяснить, как правильно настроить мои контроллеры представления для изящной обработки предупреждений памяти.
В настоящий момент я получаю сбой EXC_BAD_ACCESS из представления, находящегося дальше встек контроллера навигации всякий раз, когда приложение получает предупреждение о памяти.
В моем табличном представлении происходит неправильный доступ.Вот как я его создаю:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
UITableView *table = [[[UITableView alloc] initWithFrame:CGRectMake(self.view.bounds.origin.x, self.view.bounds.origin.y, self.view.bounds.size.width, self.view.bounds.size.height - self.navigationController.navigationBar.bounds.size.height) style:UITableViewStyleGrouped] autorelease];
table.dataSource = self;
table.delegate = self;
self.tableView = table;
[self.view addSubview:table];
[table release];
...other stuff...
}
А вот мой viewDidUnload:
- (void)viewDidUnload
{
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
self.tableView = nil;
}
После предупреждения о памяти вызывается viewDidUnload, как и ожидалось, но я получаю аварийный сбой EXC_BAD_ACCESS приself.tableView = nil
строка.
Я настраиваю свой tableView в неправильном месте?Я не использую nib-файл, так что мне его собирать в другом месте?Я как-то неправильно передаю это контроллеру представления?и т. д.
Любая помощь будет высоко ценится.Я до сих пор не осознал последовательность событий, возникающих при предупреждении памяти, и предупреждения памяти уровня 1 кажутся неприятно распространенными.