Я очень запутался в следующем коде:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
RPSAdvisorViewController *pushThis = [[RPSAdvisorViewController alloc]init];
pushThis.opponentName = [opponentArray objectAtIndex:indexPath.row];
[self.navigationController pushViewController:pushThis animated:YES];
//[pushThis release];
}
Если строка [pushThis release] не закомментирована, приложение вылетит, когда я вернусь из этого представления.Я думал, что всегда должен выпускать выделенные мной viewControllers, но на этот раз приложение не позволит мне.
Я даже пытался проверить утечки в таких инструментах, не выпуская pushThis, утечек нет.
Я действительно смущен, может кто-нибудь сказать мне, почему я не собираюсь выпускать pushThis?
Edit1: сбой выдаст следующее сообщение об ошибке:
- [CALayer release]: сообщение отправлено на освобожденный экземпляр 0x4e66b20
Похоже, что, когда navigationController открывает контроллер представления, он пытается снова отправить выпуск в pushThis, который уже был освобожден.Если я не выпускаю, все работает отлично, инструменты не показывают никаких утечек, даже если я многократно нажимаю и выскакиваю контроллер представления.