Прерывистый EXC_BAD_ACCESS - PullRequest
0 голосов
/ 19 марта 2011

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

DetailViewController *content = [[DetailViewController alloc]initWithNibName:@"DetailView" bundle:nil];

content.navigationItem.leftBarButtonItem = [[[UIBarButtonItem alloc] initWithTitle:@"Close" 
                                                                             style:UIBarButtonItemStylePlain
                                                                            target:content
                                                                            action:@selector(closeButtonPress:)] autorelease]; 
UINavigationController *modalNavController = [[UINavigationController alloc] initWithRootViewController:content];  
modalNavController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;

[self presentModalViewController:modalNavController animated:YES];

[modalNavController release];

Это хорошо работает в 99% случаев, но в некоторых случаях я получаю сбой ..

-[__NSCFType closeButtonPress:]: unrecognized selector sent to instance 0x5ca91d0

1 Ответ

1 голос
/ 19 марта 2011

Код выглядит (почти) правильно с первого взгляда.Но вы должны куда-то выпускать контент, но вряд ли из-за этого произойдет ExcBadAccess.

Так что, чтобы выследить это, я бы предложил использовать NSZombies.NSZombies предотвращает освобождение ваших объектов, они просто помечаются как освобожденные (то есть превращаются в зомби).

  1. Откройте группу Executable на боковой панели xcode (3.x)
  2. Щелкните правой кнопкой мыши и Get Info на исполняемом файле
  3. ОткройтеArguments tab
  4. Добавьте переменную окружения в Variables to be set in the environment
  5. Назовите ее NSZombieEnabled и установите для нее значение YES.Убедитесь, что он активирован
  6. Запустите ваш код с включенными точками останова, пока объект зомби не будет назван

Когда вы знаете, где это происходит, вы можете лучше выяснить, почему это происходит.

...