2011-10-19 7 views
6

proszę mi pomóc! Mogę wysłać obrazek, ale nie mogę wysłać pliku PDF, mimo że widzę załącznik z ikoną na emailu. Mój kod:cant wysłać plik pdf z e-mail xcode

MFMailComposeViewController *sendmailview = [[MFMailComposeViewController alloc] init]; 
    sendmailview.mailComposeDelegate = self; 
// I can send image with: 
// UIImage *roboPic = [UIImage imageNamed:@"Default.png"]; 
// NSData *imageData = UIImageJPEGRepresentation(roboPic, 1); 
// [sendmailview addAttachmentData:imageData mimeType:@"image/png" fileName:@"Default.png"]; 

// But Can't send pdf file 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

    NSString *documentsDirectory = [paths objectAtIndex:0]; 

     NSString *file = [documentsDirectory stringByAppendingFormat:@"book.pdf"]; 

    NSMutableData *data=[NSMutableData dataWithContentsOfFile:file]; 

    [sendmailview addAttachmentData:data mimeType:@"application/pdf" fileName:@"book.pdf"]; 

// I see icon book.pdf when attach,but when i sent mail,mail receiver not see pdf file... 

     [self presentModalViewController:sendmailview animated:YES]; 

    [sendmailview release]; 

Pomóż mi ........

Dzięki!

Odpowiedz

4

Zastosowanie

NSString *file = [documentsDirectory stringByAppendingFileComponent:@"book.pdf"]; 

zamiast

NSString *file = [documentsDirectory stringByAppendingFormat:@"book.pdf"]; 

Ponadto, dane mogą być NSData zamiast NSMutableData.

NSData *data = [NSData dataWithContentsOfFile:file]; 

Czy masz pewność, że plik PDF jest obecny na ścieżce, do której się odnosisz? Czy dane zmienne są ważne?

+0

Dziękujemy! Zrobiłem: NSString * file = [documentsDirectory stringByAppendingFormat: @ "/ book.pdf"]; i to działa! dzięki za pomoc – user1002290