我一直在寫一個簡單的應用程序,從.csv文件中繪製初始值,然後添加到它們,然後嘗試將修改的數據寫回到同一個CSV文件。終端窗口中的輸出表明它的工作正常,但是當我查看該文件或從另一啓動(我在Xcode的iPhone模擬器上測試這個文件)中訪問它時,它似乎不起作用。有人能告訴我我要去哪裏嗎?這裏是我的代碼:字符串似乎不會覆蓋.csv文件。爲什麼?
-(IBAction)AddButtonPressed:(id)sender{
// Get the input from the input field and add it to the sum in the bank field
float a = ([input.text floatValue]);
float b = a+([earned.text floatValue]);
// adding the old value of 'earned' text field to the value from the input field and update the interface
earned.text = [[NSString alloc] initWithFormat:@"%4.2f",b];
// THIS IS THE BEGINNINGS OF THE CODE FOR WRITING OUT TO A .CSV FILE SO THAT DATA CAN BE USED LATER IN EXCEL
NSString *path = [[NSBundle mainBundle] pathForResource:@"Income" ofType:@"csv"];
if ([[NSFileManager defaultManager] fileExistsAtPath:path])
{
NSLog(@"found it");
NSString *contents = [[NSString alloc] initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSLog(@"string looks like this\: %@", contents);
//set the contents of income to be the same as what's currently in income.csv
[income setString:contents];
NSLog(@"income contains\: %@", income);
//NEXT Apend income to add NSDATE, Textinput and the float value 'a'
//Get the Date...
NSDateComponents *components = [[NSCalendar currentCalendar] components: NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:[NSDate date]];
NSInteger day = [components day];
NSInteger month = [components month];
NSInteger year = [components year];
//... And apend it into a readable string with a comma on the end
NSString *theDate = [[NSString alloc] init];
theDate = [NSString stringWithFormat:@"%d.%d.%d", day,month,year];
NSLog(@"The Date is %@", theDate);
//holder string till I get the text input wired up in the interface
NSString *text = [[NSString alloc]init];
text = @"filler words";
//turn the float entered in the GUI to a string ready for adding to the 'income' mutable array
NSString *amountAdded = [[NSString alloc]init];
amountAdded = [NSString stringWithFormat:@"%4.2f", a];
//format the final string and pass it to our 'income' NSMutable Array
NSString *finalString = [[NSString alloc] init];
finalString = [NSString stringWithFormat:@"\n %@, %@, %@", theDate, text, amountAdded];
NSLog(@"final string is %@", finalString);
[income appendString:finalString];
NSLog(@"income now reads %@", income);
[income writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSLog(@"completed writing to income.csv which now reads %@", contents);
}
else{
NSLog(@"not a sausage");
}
什麼是「收入「我不明白你在哪裏你聲明/初始化那個對象,你也可以嘗試NSError *錯誤; [收入writeToFile:原子路徑:YES編碼:NSUTF8StringEncoding錯誤:&錯誤];並檢查錯誤對象中是否有錯誤。 –
收入是在viewDidLoad中初始化的NSMustableString。 –