Я использую openURL для отправки электронного письма с некоторыми ссылками.Функция выглядит следующим образом:
//
+ (void) sendEmail:(NSString *) subject withBody:(NSString *)body {
NSString *mailString = [NSString stringWithFormat:@"mailto:?@&subject=%@&body=%@",
[subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
[mailString autorelease];
}
Код, который вызывает эту функцию, выглядит следующим образом:
[AppNameAppDelegate sendEmail: subjectLine withBody: bodyText];
Независимо от того, чтоsubjectLine и bodyText, я получаю сообщение об ошибке, подобное этому:
Program received signal: “EXC_BAD_ACCESS”.
Электронная почта на самом деле всплывает, поэтому я знаю, что она проходит через этот openURL.Но к тому времени я полагаю, что программа потерпела крах, и поэтому она не восстанавливается при выходе из панели электронной почты.
Любые идеи о том, почему это происходит?
Проблема выглядит как this но этот ответ не применим.Это больше похоже на это сообщение на форуме , но, к сожалению, эта проблема выглядит так, как будто она никогда не решалась.
ОБНОВЛЕНИЕ: при удалении автоматически выпущенной mailString (согласно инструкциям в тикете StackOverflow , упомянутых выше) это не улучшает ситуацию.
//
+ (void) sendEmail:(NSString *) subject withBody:(NSString *)body {
NSString *mailString = [NSString stringWithFormat:@"mailto:?@&subject=%@&body=%@",
[subject stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],
[body stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:mailString]];
}
Установка точки останова malloc_error_break, похоже, ничего не делает.Вывод все еще выглядит так:
AppName(1424,0x3e9097c8) malloc: *** error for object 0x16fdf0: double free
*** set a breakpoint in malloc_error_break to debug