EXC_BAD_ACCESS在iPhone中发送带附件的邮件

时间:2012-09-21 09:32:04

标签: iphone xcode

我已创建程序,用sqlite数据库中的一些细节发送邮件

如果我没有使用附件,它工作正常,但如果我取消注释,就像我得到这样的例外:

Thread 1: EXC_BAD_ACCESS(code=1, address=0x474e5091

这是我的代码:

MFMailComposeViewController *mailView = [[MFMailComposeViewController alloc] init];

    mailView.mailComposeDelegate = (id) self;

    NSArray *recipients = [NSArray arrayWithObject:@"chintan_zwt@yahoo.com"];

    [mailView setToRecipients:recipients];
    [mailView setSubject:@"Try Mail From User Application"];

    NSString *body = [[NSString alloc] initWithFormat:@"First Name : %@ <br>",lblFirstName.text];

    body = [body stringByAppendingFormat:@"Last Name : %@<br>",lblLastName.text];
    body = [body stringByAppendingFormat:@"Username  : %@<br>",lblUsername.text];
    body = [body stringByAppendingFormat:@"Password  : %@<br>",lblPassword.text];
    body = [body stringByAppendingFormat:@"Birthdate : %@<br>",lblBD.text];

    [mailView addAttachmentData:[UIImagePNGRepresentation(u.Img1) bytes]
                       mimeType:@"image/png"
                       fileName:@"a.png"];

    [mailView setMessageBody:body isHTML:YES];

    [self presentModalViewController:mailView animated:YES];

我从数据库中正确获取数据,并且能够在屏幕上显示图像,但只有当我将图像附加到邮件时才会出现问题

这里在

UIImagePNGRepresentation(u.Img1)

U是User Class(用户定义类)的对象,Img1是UIImage的对象

1 个答案:

答案 0 :(得分:0)

addAttachmentData:mimeType:fileName:方法的第一个需要一个NSData对象,因此不需要在NSData上调用bytes方法。

如果您在代码中尝试此操作,则可以检查UIImagePNGRepresentation()方法是否返回有效的NSData对象。只需在该行上放置一个断点并检查调试器中的值。

NSData *imageDate = UIImagePNGRepresentation(u.Img1);
[mailView addAttachmentData:imageDate mimeType:@"image/png" fileName:@"a.png"];