2011-11-15 27 views
0

在一個視圖控制器我有一個按鈕,在內部調用一個IBAction爲,並且在內部調用MFMailComposer EXEC_BAD_ACCESS - 它可能有一些做初始化

 [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]; 
} 

現在,它的工作原理好嗎?對於人l電子郵件或刪除或類似的情況,但在代碼完成後,模擬器只是拋出一個exec_bad_access,然後什麼都不做......你能幫忙嗎?

PS:我還發現,如果您將上面聲明的mvc發佈到發佈版中,則會調用該錯誤。螞蟻的想法

更新:

我也只有一個變化安裝應用程序...... 我初始化頭文件的MVC,然後只用相同的語句。所以現在我沒有得到exec_bad_access錯誤了......我認爲它是害怕的nsZOMBIES ....哈哈......感謝您的幫助和支持..傢伙......你們倆......

+1

設置NSZombieEnabled或去(如果你使用的XCode 3。*。*)編輯方案「,」運行「選項卡,」診斷「選項卡並在其中設置殭屍(如果您使用的是XCode 4)以查看示例ct行,下一次運行應用程序時會引發EXEC_BAD_ACCESS。 – krafter

回答

1

你不應該自動釋放該對象,它已經自動釋放

NSArray *mails = [[NSArray arrayWithObject:email ]autorelease]; 

而是更改爲:

NSArray *mails = [NSArray arrayWithObject:email]; 
+0

良好的捕獲嘗試了一個不同的東西,但事實並非如此......仍然存在問題..並且在調試之前它一直沒有顯示任何問題,直到我發送電子郵件。 – medampudi