Когда я перемещаюсь по строке щелчка, я нажимаю poinofinterestview, но когда я нажимаю назад, происходит сбой приложения. но если я прокомментирую [релиз nextControllerp]; работает или 5 или 6 раз потом вылетает

(void)tableView:(UITableView *)TableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

[TableView deselectRowAtIndexPath:indexPath animated:YES];

PointOfInterest *nextControllerp=[[PointOfInterest alloc] initWithNibName:@"PointOfInterest" bundle:nil]; 
        if([LocationList count]!=0 && [LocationListId count]!=0) 
        { 
          nextControllerp.locName=[LocationList objectAtIndex:indexPath.row]; 
          nextControllerp.LocationId=[LocationListId objectAtIndex:indexPath.row]; 
          [self.navigationController pushViewController:nextControllerp animated:YES];
       } 
[nextControllerp release];

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"Back" style:UIBarButtonItemStylePlain target:nil action:nil]; 
self.navigationItem.backBarButtonItem=backButton;

 [backButton release];
}
0
shivraj 4 Мар 2011 в 12:54

1 ответ

Я заметил одну вещь: ваш код иногда создает объект PointOfInterest, а затем выпускает его, ничего с ним не делая. Переместите создание/выпуск в блок if.

Кроме того, вы используете правильную идиому для добавления нового контроллера в навигационный контроллер, т. е. инициализируете контроллер, вставляете его в навигационный контроллер, а затем немедленно вызываете релиз.

Я считаю, что ваш сбой вызван чем-то, что не показано в опубликованном вами коде. Тот факт, что закомментирование строки release приводит к меньшему количеству сбоев, может указывать на то, что какой-то код все еще пытается получить доступ к вашему новому контроллеру представления после того, как он был удален из стека навигации (потому что обычно в момент увольнения это было бы освобожден и освобожден).

Просто из любопытства, влияет ли удаление фрагмента кода, который устанавливает элемент кнопки «Назад», на сбой? Пытаюсь закомментировать последние три строки.

1
occulus 4 Мар 2011 в 14:13