Ios NSString将日期和名称组合为csv的名称
我有一个iOS应用程序,它从表单中获取数据,然后通过电子邮件将其作为csv发送。目前它将csv保存为静态文件名,但我希望它开始将其保存为.csv。如果为日期重新定义一个新变量更容易,那就这样吧,我已经尝试过了,但也无法实现 现在看起来是这样的:Ios NSString将日期和名称组合为csv的名称,ios,csv,Ios,Csv,我有一个iOS应用程序,它从表单中获取数据,然后通过电子邮件将其作为csv发送。目前它将csv保存为静态文件名,但我希望它开始将其保存为.csv。如果为日期重新定义一个新变量更容易,那就这样吧,我已经尝试过了,但也无法实现 现在看起来是这样的: NSString* fileName = @"file.csv"; NSString *FromEmail = [userDefault objectForKey:@"FromEmail"]; 我尝试过这一点,还有其他一些小的语法更改,但没有成功:
NSString* fileName = @"file.csv";
NSString *FromEmail = [userDefault objectForKey:@"FromEmail"];
我尝试过这一点,还有其他一些小的语法更改,但没有成功:
NSString* fileName = @"%@%@ .csv",FromEmail,dateString;
FromEmail是在HomeView中定义的。我是这样定义的:
NSString* fileName = @"file.csv";
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
我怀疑这很简单,但它让我困惑了好长时间。热舔是对的,我把日期的格式搞错了。它抛出了一个错误,因为日期部分的格式是正斜杠,正斜杠正在更改它保存的路径 我使用以下代码为CSV文件名添加了单独的日期格式化程序:
NSDate *csvDate = [NSDate date];
NSDateFormatter *csvFormatter = [[NSDateFormatter alloc] init];
[csvFormatter setDateFormat:@"ddMMyy-Hm"];
NSString *csvDateString = [csvFormatter stringFromDate:csvDate ];
并将生成filename变量的行更改为:
NSString* fileName = [NSString stringWithFormat:@"%@%@.csv",FromEmail,csvDateString];
感谢您的帮助文件名与示例是什么样的?我猜有一个角色是不允许的。也许@?那么dateString只是凭空出现的?寻求调试帮助的问题为什么这段代码不起作用?必须包括所需的行为、特定的问题或错误以及在问题本身中重现它所需的最短代码。@HotLicks dateString定义为:NSString*dateString=[formatter stringFromDate:newDate1];newDate1进一步定义为NSDate@Larme我不太明白你在问什么。。您的意思是,如果删除第一个@,该行的代码看起来应该可以工作吗?