Можно установить для переменной среды NSZombieEnabled
значение YES
( Продукт> Изменить схему… , выбрать Выполнить (Имя продукта) , нажать Аргументы вкладка и редактирование списка переменных среды).С NSZombie
объекты не будут освобождены, а превращены в зомби.Отправив им сообщение, вы получите сообщение об ошибке на консоли вместо сбоя с EXC_BAD_ACCESS
.Таким образом, вы можете узнать, действительно ли это MFMailComposeViewController
, вызывающее проблемы.
Но сохранение и освобождение контроллера представления может даже не потребоваться.Если вы представляете MFMailComposeViewController
сразу после его создания и больше не используете его после того, как он был уволен, вам не нужно его сохранять:
- (IBAction)composeMessage:(id)sender {
MFMailComposeViewController *mailComposeViewController = [[[MFMailComposeViewController alloc] init] autorelease];
mailComposeViewController.mailComposeDelegate = self;
[self presentModalViewController:mailComposeViewController animated:YES];
}
- (void)mailComposeController:(MFMailComposeViewController *)mailComposeViewController didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error {
// Present error to the user if failed
[self dismissModalViewControllerAnimated:YES];
}