【发布时间】:2015-05-24 09:48:45
【问题描述】:
我有一个 iOS 应用程序,它从表单中获取数据,然后通过电子邮件将其作为 csv 发送。目前它将csv保存为静态文件名,但我希望它开始将其保存为<date><other app defined variable>.csv。如果为日期重新定义一个新变量更容易,那就这样吧,尝试过但也无法实现。
目前看起来是这样的:
NSString* fileName = @"file.csv";
我已经尝试过这个,以及其他没有运气的细微语法更改:
NSString* fileName = @"%@%@ .csv",FromEmail,dateString;
FromEmail 在 HomeView.m 中定义如下:
NSString *FromEmail = [userDefault objectForKey:@"FromEmail"];
这是整个 csv 制作部分:
//CSV function
NSMutableString *csv = [NSMutableString stringWithString:@""];
//add your content to the csv
[csv appendFormat:@"From,Date,Client,Time,Notes,Hardware,AfterHours,NoCharge\n%@,%@,%@,%@,%@,%@,%@,%@",FromEmail,dateString,txtClient.text,txtTime.text,txtNotes.text,txtHardware.text,isAfterHours,isDiscount];
NSString* filePath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
//NSString* fileName = @"file.csv";
NSString* fileName = @"%@%@ .csv",FromEmail,dateString;
NSString* fileAtPath = [filePath stringByAppendingPathComponent:fileName];
if (![[NSFileManager defaultManager] fileExistsAtPath:fileAtPath]) {
[[NSFileManager defaultManager] createFileAtPath:fileAtPath contents:nil attributes:nil];
}
BOOL res = [[csv dataUsingEncoding:NSUTF8StringEncoding] writeToFile:fileAtPath atomically:NO];
if (!res) {
[[[UIAlertView alloc] initWithTitle:@"Error Creating CSV" message:@"Check your permissions to make sure this app can create files so you may email the app data" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles: nil] show];
}else{
NSLog(@"Data saved! File path = %@", fileName);
[picker addAttachmentData:[NSData dataWithContentsOfFile:fileAtPath]
mimeType:@"text/csv"
fileName:@"file.csv"];
[self presentViewController:picker animated:YES completion:nil];
}
//END CSV Function
我怀疑它真的很简单,但它让我难倒了好久
【问题讨论】:
-
举个例子,
fileName是什么样的?我的猜测是有一个不允许的字符。也许是“@”? -
所以
dateString凭空出现? -
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。跨度>
-
@HotLicks dateString 定义为: NSString *dateString = [formatter stringFromDate:newDate1 ]; newDate1 被进一步定义为 NSDate
-
@Larme 我不太明白你在问什么。你的意思是说如果第一个 @ 被删除,那一行的代码应该可以工作吗?