将图像添加到Mail时出错 - MFMailComposeViewController

时间:2013-02-10 16:34:11

标签: iphone ios objective-c xcode

我正在尝试使用MFMailComposeViewController发送一个我已添加到项目中的Image。

我在模拟器中尝试了这个并且它工作正常,我也可以在Textfield中看到Image,但是当我尝试发送Mail时,我在控制台上收到以下错误:

  

Feb 10 16:22:02 markuss-macbook-pro.speedport.ip RMC Konus [1825]:CGImageCreate:图片大小无效:0 x 0。

我的代码:

//Get the Image
UIImage *image = [UIImage imageNamed:@"image.png"];

NSData *imageData = UIImagePNGRepresentation(image);

//Create the Mail View
MFMailComposeViewController *mailCV = [[MFMailComposeViewController alloc] init];

[mailCV setMailComposeDelegate:self];



[mailCV addAttachmentData:imageData mimeType:@"image/png" fileName:@"exGraphic.png"];

//Show the View Controller
[self presentViewController:mailCV animated:YES completion:nil];

2 个答案:

答案 0 :(得分:2)

问题仅出现在模拟器中。 我在许多不同的设备上检查这些代码,它仍然没有问题。所以我想说,这是模拟器的问题......

答案 1 :(得分:0)

UIImagePNGRepresentation的返回值(来自Apple文档) -

  

包含PNG数据的数据对象,如果出现问题,则为nil   生成数据。如果图像没有,则此函数可能返回nil   数据或基础CGImageRef包含不受支持的数据   位图格式。

这意味着检查您的图像是否支持将其转换为带有png格式的NSData,因为您在此处收到NULL。您的错误CGImageCreate: invalid image size: 0 x 0.表示它为NULL。
通过更改图像来检查。也可以不使用[UIImage imageNamed:@""]进行检查,因为这种方法有很多不利之处。

另外一件事,你已将image.png图像转换为NSData&发送另一张图片exGraphic.png作为附件,检查