我正在使用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];
}
调用此函数的代码如下所示:
[应用程序名称AppDelegatesendEmail:subjectLine withBody:正文];
不管主题行和正文是什么,我都会得到这样一个错误:
Program received signal: âEXC_BAD_ACCESSâ.
电子邮件实际上会弹出,所以我知道它是通过那个openURL发送的。但到那时,我猜程序已经崩溃,所以当你退出电子邮件窗格时,它不会恢复。
问题看起来像
this
this forum post
但不幸的是,这个问题似乎从未得到解决。
更新:删除自动释放的邮件字符串时(根据StackOverflow中的说明)
ticket mentioned above
//
+ (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\u error\u break断点似乎没有任何作用。输出仍然如下所示:
AppName(1424,0x3e9097c8) malloc: *** error for object 0x16fdf0: double free
*** set a breakpoint in malloc_error_break to debug