2012-05-09 16 views
5

Bir csv dosyası oluşturdum ve ayrıca MFMailComposer'a ekliyorum ve bana mail bestecimi gösterir, ancak e-postaya gönderdiğimde e-postada bana eklenmiş csv dosyasını göstermez. csv dosyası oluşturmak ve buna veri eklemek için bu kodu kullandım. Burada iPhone sdk içinde MFMailComposer CSV dosyası oluşturmak ve eklemek nasıl?

 NSMutableString *mainString=[[NSMutableString alloc]initWithString:@""]; 
     //NSMutableArray *section = [[NSMutableArray alloc] init]; 
     for(int i = 0;i<[NameArray count];i++) 
     { 
      NSString *string=[indexArray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@"\"%@\"",string]; 


      string=[NameArray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@",\"%@\"",string]; 

      string=[typearray objectAtIndex:i]; 
      string=[string stringByReplacingOccurrencesOfString:@"\"" withString:@"\"\""]; 
      [mainString appendFormat:@",\"%@\"",string]; 

      [mainString appendFormat:@",\"%@\"",string]; 
      [mainString appendFormat:@"\n"]; 

     } 

     NSLog(@"getdatafor csv:%@",mainString); 

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
     NSString *documentsDirectoryPath = [paths objectAtIndex:0]; 
     NSString *filePath = [documentsDirectoryPath stringByAppendingPathComponent:@"history.csv"]; 
//  filePath = [filePath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
     NSData* settingsData; 
     settingsData = [mainString dataUsingEncoding: NSASCIIStringEncoding]; 

     NSError *error; 
     [settingsData writeToFile:filePath atomically:YES]; 
//   NSLog(@"writeok"); 
     NSData *mediaData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMapped error:&error]; 

     NSLog(@"Length:%d Error:%@",[mediaData length],[error localizedDescription]); 

Yukarıdaki kod i [mediaData uzunluğu] i buradan CSV dosyası bağlama am alıyorum iyi çalışıyor. Yukarıdaki kod da düzgün şekilde çalışıyor demektir. bana ekli CSV dosyasını gösterir, ancak e-postayı e-posta ile gönderdiğimde, alıcı ekli CSV dosyasını almaz. Bu kodda neyin var? alıcı neden ekli dosya almıyor.

+0

hey kimse bana yardım edebilir mi? –

+0

hey, herhangi bir beden bana mail composer penceremize csv dosyası eklemek hakkında fikir verin. –

+0

seçici = [[MFMailComposeViewController ayırma] init]; picker.mailComposeDelegate = self; [seçici kümesiToRecipients: [NSArray arrayWithObjects: @ "abc.xyz.com", nil]]; [seçici setSubject: @ "iMoneyManager - CSV Exported"]; [seçici setMessageBody: @ "" isHTML: NO]; [picker addAttachmentData: mediaData mimeType: @ "text/csv" dosyaAdı: @ "MoneyManager"]; picker.navigationBar.tintColor = [UIColor blackColor]; [self presentModalViewController: seçici animasyon: YES]; –

cevap

0

Bu sorunu MFMailComposeViewController'daki dosya ve diğer medya özelliklerine iliştirerek çözdüm. 'metin' bir dize olan

0
NSData *data=[[arr componentsJoinedByString:@","] writeToFile:@"Bhavesh.csv" atomically:YES encoding:NSUTF8StringEncoding error:NULL]; 
[mail addAttachmentData:data mimeType:@"text/csv" fileName:@"Bhavesh.csv"]; 
3
MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init]; 
mailer.mailComposeDelegate = self; 
[mailer setSubject:@"CSV File"]; 

NSData *myData = [text dataUsingEncoding:NSUTF8StringEncoding]; 

[mailer addAttachmentData:myData mimeType:@"text/cvs" fileName:@"FileName"]; 

[self presentModalViewController:mailer animated:YES]; 

.

İlgili konular