0

我在文档目录中有用户记录的文件...显示在 uitableview 中...

我将此代码放在我的 didSelectRowAtIndexPath 中...为什么这不起作用?

     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",[directoryContents objectAtIndex:indexPath.row]]];
NSURL *audioURL = [NSURL URLWithString:fileName];
NSData *audioData = [NSData dataWithContentsOfURL:audioURL];

MFMailComposeViewController *mailer = [[MFMailComposeViewController alloc] init];

    mailer.mailComposeDelegate = self;

[mailer addAttachmentData:audioData mimeType:@"audio/caf" fileName:fileName];
4

1 回答 1

1

您创建的 URL 不正确。你需要使用fileURLWithPath,而不是URLWithString

另外,这个:

NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",[directoryContents objectAtIndex:indexPath.row]]];

应该:

NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[directoryContents objectAtIndex:indexPath.row]];

不需要字符串格式。

最后一件事。传递给addAttachment方法的文件名应该只是一个文件名,而不是完整的路径名。

于 2013-02-03T22:34:08.367 回答