2015-05-24 39 views
-2

我有一個iOS應用程序從表單獲取數據,然後通過電子郵件將其作爲csv發送。目前它將csv保存爲靜態文件名,但我希望它將其保存爲<date><other app defined variable>.csv。如果它更容易爲日期重新定義一個新的變量,那就試試吧,但是卻無法做到這一點。NSString結合日期和名稱作爲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 

我懷疑它的東西很簡單,但它只是把我難倒了好半天

+0

有什麼看起來像'fileName'的例子?我的猜測是有一個角色是不允許的。也許「@」? – Larme

+0

所以'dateString'只是空氣稀薄? –

+0

尋求調試幫助的問題(「爲什麼這個代碼不工作?」)必須包含所需的行爲,特定的問題或錯誤,以及在問題本身中重現問題所需的最短代碼。 –

回答

0

熱舔是正確的,我有錯日期的格式。這是拋出一個錯誤,因爲日期部分被正斜線格式化,正在改變它被保存的路徑。

我添加的CSV文件名的獨立日期格式使用此代碼:

NSDate *csvDate = [NSDate date]; 
NSDateFormatter *csvFormatter = [[NSDateFormatter alloc] init]; 
[csvFormatter setDateFormat:@"ddMMyy-Hm"]; 
NSString *csvDateString = [csvFormatter stringFromDate:csvDate ]; 

而且改了行做文件名可變這樣:

NSString* fileName = [NSString stringWithFormat:@"%@%@.csv",FromEmail,csvDateString]; 

感謝您的幫助