我有文件目录中的用户记录的文件...显示在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];
答案 0 :(得分:1)
您正在错误地创建URL。您需要使用fileURLWithPath
,而不是URLWithString
。
另外,这个:
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",[directoryContents objectAtIndex:indexPath.row]]];
应该是:
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:[directoryContents objectAtIndex:indexPath.row]];
不需要字符串格式。
最后一件事。传递给addAttachment
方法的文件名应该只是一个文件名,而不是一个完整的路径名。