그래서 .csv 파일을 만들고 사용자가 UIActivityViewController를 사용하여 공유 할 수 있도록하고 있습니다.UIActivityViewController와 함께 .csv 파일을 만들고 사용하십시오.
파일의 NSURL을 반환 CSV 파일 만드는 내 코드 :
- (NSURL *)exportToCSV
{
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString *filePath = [docPath stringByAppendingPathComponent:@"results.csv"];
if (![[NSFileManager defaultManager] fileExistsAtPath:docPath]) {
[[NSFileManager defaultManager] createFileAtPath:filePath
contents:nil
attributes:nil];
}
NSMutableString *contents = [NSMutableString stringWithCapacity:0];
//fill contents with data in csv format
// ...
NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filePath];
[fileHandle writeData:[contents dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandle closeFile];
return [NSURL fileURLWithPath:filePath];
}
다음 내 활동 NSURL가 UIActivityViewController 시작하는 것을 사용한다 : I 메일을 선택하면
- (IBAction)shareButtonPressed:(id)sender {
NSArray *activityItems = @[@"results.csv", [self.object exportToCSV]];
UIActivityViewController *shareScreen = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
[self presentViewController:shareScreen animated:YES completion:nil];
}
을 옵션을 사용하면 csv 파일이 첨부되지 않습니다. 텍스트 "results.csv"가 있습니다.
내가 뭘 잘못하고 있니?
파일을 보았습니까? 괜찮 니? 시뮬레이터 폴더 ('~/Library/Application Support/iPhone Simulator/...')에서 파일을 열 수 있습니다 : Mac OS X Finder에서'Library' 폴더를 보려면'option' 키를 누르고 있어야 할 수도 있습니다) 파일이 정상인지 확인하십시오. 나는 일반적으로'NSString' 인스턴스 메소드'writeToFile'를 사용하여 문자열을 저장합니다. NSFileManager와 NSFileHandle도 제거합니다. – Rob
그러나 귀하의 질문에 대답, 문제가 귀하의'fileExistsAtPath' 줄에 나타납니다. "문서 디렉토리가 존재하지 않으면 파일을 만듭니다"라는 메시지가 나타납니다. 아마도'filePath'가 아니라'filePath'를 사용했을 것입니다. – Rob