我正在尝试将NSMutableArray数据附加到电子邮件正文。这是我的NSMutableArray代码:
NSUserDefaults *defaults1 = [NSUserDefaults standardUserDefaults];
NSString *msg1 = [defaults1 objectForKey:@"key5"];
NSData *colorData = [defaults1 objectForKey:@"key6"];
UIColor *color = [NSKeyedUnarchiver unarchiveObjectWithData:colorData];
NSData *colorData1 = [defaults1 objectForKey:@"key7"];
UIColor *color1 = [NSKeyedUnarchiver unarchiveObjectWithData:colorData1];
NSData *colorData2 = [defaults1 objectForKey:@"key8"];
UIFont *color2 = [NSKeyedUnarchiver unarchiveObjectWithData:colorData2];
CGFloat x =(arc4random()%100)+100;
CGFloat y =(arc4random()%100)+250;
lbl = [[UILabel alloc] initWithFrame:CGRectMake(x, y, 100, 70)];
lbl.userInteractionEnabled=YES;
lbl.text=msg1;
lbl.backgroundColor=color;
lbl.textColor=color1;
lbl.font =color2;
lbl.lineBreakMode = UILineBreakModeWordWrap;
lbl.numberOfLines = 50;
[self.view addSubview:lbl];
[viewArray addObject:lbl ];
现在,如果我的viewArray包含3个UILabel以及上面提到的所有这些属性。那么如何附加此viewArray与电子邮件正文。这是我的电子邮件代码。
- (IBAction)sendEmail
{
if ([MFMailComposeViewController canSendMail])
{
NSArray *recipients = [NSArray arrayWithObject:@"example@yahoo.com"];
MFMailComposeViewController *controller = [[MFMailComposeViewController alloc]
init];
controller.mailComposeDelegate = self;
[controller setSubject:@"Iphone Game"];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:viewArray];
[controller addAttachmentData:data mimeType:@"application/octet-stream";
fileName:nil];
NSString *emailBody = @"Happy Valentine Day!";
[controller setMessageBody:emailBody isHTML:NO
[controller setToRecipients:recipients];
[self presentModalViewController:controller animated:YES];
[controller release];
}
else
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Alert"
message:@"Your device is not set up for email."
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles: nil];
[alert show];
[alert release];
}
}
我没有错误。但是没有看到电子邮件正文中的任何数据..这是在viewArray.please任何人指导我如何使用电子邮件附加我的viewArray数据。
答案 0 :(得分:2)
发送前检查NSData是否为零。
即;
[controller setSubject:@"Iphone Game"];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:viewArray];
if(!data){
NSLog(@"Data is nil");
return;
}
[controller addAttachmentData:data mimeType:@"application/octet-stream";
fileName:nil];