我已创建程序,用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的对象
答案 0 :(得分:0)
addAttachmentData:mimeType:fileName:
方法的第一个需要一个NSData
对象,因此不需要在NSData
上调用bytes方法。
如果您在代码中尝试此操作,则可以检查UIImagePNGRepresentation()
方法是否返回有效的NSData对象。只需在该行上放置一个断点并检查调试器中的值。
NSData *imageDate = UIImagePNGRepresentation(u.Img1);
[mailView addAttachmentData:imageDate mimeType:@"image/png" fileName:@"a.png"];