在视图控制器中,我有一个内部调用IBAction并在内部调用
的按钮 [self showEmailModalView:FinalEmail];
现在......在showEmailModalView中我有
-(void) showEmailModalView:(NSString *)email{
MFMailComposeViewController *mvc =[[[MFMailComposeViewController alloc] init]autorelease];
mvc.mailComposeDelegate = self;
NSArray *mails = [[NSArray arrayWithObject:email]autorelease];
[mvc setToRecipients:mails];
NSString*emailBody =[NSString stringWithFormat:@" "];
[mvc setMessageBody:emailBody isHTML:YES];
mvc.navigationBar.barStyle = UIBarStyleBlack;
[[self navigationController] presentModalViewController:mvc animated:YES];
}
然后
-(void)mailComposeController:(MFMailComposeViewController*)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError*)error
{
[[self navigationController] dismissModalViewControllerAnimated:YES];
}
现在它工作正常......对于电子邮件或删除或类似的所有场景,但在完成代码后,模拟器只会抛出一个exec_bad_access然后什么都不做....你可以帮忙吗?
PS:我还发现,如果您正在向mvc发布上述声明,则会调用错误。蚂蚁想法。
更新
我确实安装了只有一次更改的应用程序...... 我在头文件中初始化了mvc 然后只使用相同的语句。所以现在我再也没有得到exec_bad_access错误......我觉得它被nsZOMBIES吓坏了......哈哈......感谢你的帮助和支持..伙计......你们两个......
答案 0 :(得分:1)
您不应该自动释放此对象,它已经自动释放:
NSArray *mails = [[NSArray arrayWithObject:email ]autorelease];
而不是改为:
NSArray *mails = [NSArray arrayWithObject:email];