UINavigationController падает из-за переменной NSArray - PullRequest
0 голосов
/ 06 июля 2010

Я помещаю контроллер представления в текущий контроллер навигации. Он работает нормально, за исключением случаев, когда я выхожу из текущего контроллера представления, он вылетает.

MyTableView *newPage = [[MyTableView alloc] initWithNibName:@"table2" bundle:nil];
[[self navigationController] pushViewController:newPage animated:YES];
//[newPage release];

Я закомментирую последнюю строку, чтобы предотвратить сбой. Я прочитал другой пост о переменных, которые были переизданы. В newPage у меня есть только одна переменная (arrCellText), и она инициализируется в initWithNibName

NSArray *temp = [[NSArray alloc] initWithObjects:@"string1", @"string2", @"string3", nil];
[self setArrCellText: temp];
[temp release];

Я положил релиз в сделку

[arrCellText release];

Если я прокомментирую настройку и выпуск arrCellText, он тоже будет работать нормально. У меня не должно быть полного понимания управления памятью, и я хотел бы понять это лучше. ТИА

1 Ответ

0 голосов
/ 07 июля 2010

Где именно происходит сбой?Сначала вы можете освободить 'newPage' после того, как поместите его в навигационный контроллер (потому что он там хранится).

Вы можете попытаться получить доступ к чему-либо из newPage после возвращения.'newPage' был выпущен в то же время и поэтому имеет некоторое значение мусора (но не ноль).

...