Iphone 创建csv文件并读取它
因此,在我的应用程序的第一个viewcontroller中,尝试创建一个包含字符串的csv文件,但由于某些原因它无法工作。我使用以下代码:Iphone 创建csv文件并读取它,iphone,ios,objective-c,csv,Iphone,Ios,Objective C,Csv,因此,在我的应用程序的第一个viewcontroller中,尝试创建一个包含字符串的csv文件,但由于某些原因它无法工作。我使用以下代码: -(IBAction)initialButton:(id)sender { NSLog(@"initialButton clicked"); if([securityCode.text length] == 8){ NSString *securtityCodeData = [NSString stringWithFor
-(IBAction)initialButton:(id)sender {
NSLog(@"initialButton clicked");
if([securityCode.text length] == 8){
NSString *securtityCodeData = [NSString stringWithFormat:@"%@",
self.securityCode.text];
NSString *docPath =[NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString *securityCodes=[docPath stringByAppendingPathComponent:@"securityCodes.txt"];
if (![[NSFileManager defaultManager] fileExistsAtPath:securityCodes]){
[[NSFileManager defaultManager]createFileAtPath:securityCodes contents:nil attributes:nil];
}
NSFileHandle *fileHandel = [NSFileHandle fileHandleForUpdatingAtPath:securityCodes];
[fileHandel seekToEndOfFile];
[fileHandel writeData:[securtityCodeData dataUsingEncoding:NSUTF8StringEncoding]];
[fileHandel closeFile];
NSLog(@"security code has been saved\nSecurity code:%@",securtityCodeData);
NewTrackTraceViewController *newTrackTraceViewController = [[NewTrackTraceViewController alloc]init];
AppDelegate *appDelegate = [UIApplication sharedApplication].delegate;
[appDelegate.transitionController transitionToViewController:newTrackTraceViewController withOptions:UIViewAnimationOptionTransitionCrossDissolve];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
} else {
[WCAlertView showAlertWithTitle:@"Security code is not valid"
message:@"Please enter a valid securitycode to continue."
customizationBlock:^(WCAlertView *alertView) {
alertView.style = WCAlertViewStyleVioletHatched;
} completionBlock:^(NSUInteger buttonIndex, WCAlertView *alertView) {
} cancelButtonTitle:@"Cancel" otherButtonTitles:@"Okay",nil];
}
}
然后我们推到我的第二个viewcontroller,我想在那里读取csv文件并将其内容放入标签中:
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *docPath =[NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSString *securityCodes=[docPath stringByAppendingPathComponent:@"securityCodes.csv"];
if([[NSFileManager defaultManager] fileExistsAtPath:securityCodes]){
securityCodeLabel.text = securityCodes;
NSFileHandle *fileHandel = [NSFileHandle fileHandleForReadingAtPath:securityCodes];
NSString *securityCodeData=[[NSString alloc]initWithData:[fileHandel availableData] encoding:NSUTF8StringEncoding];
[fileHandel closeFile];
self.securityCodeLabel.text=securityCodeData;
NSLog(@"%@",securityCodeData);
}else{
NSLog(@"File does not exist");
self.securityCodeLabel.text=@"No security code found!";
}
}
我做错了什么?由于某些原因,文件未保存。NSDocumentationDirectory应该是NSDocumentDirectory。您的意思是要写入NSDocumentationDirectory而不是NSDocumentDirectory吗?太棒了,这就是问题所在,非常感谢:D注意:更改此项:
NSString*securtyCodeData=[NSString stringWithFormat:@“%@”,self.securityCode.text]代码>到此:NSString*securtityCodeData=self.securityCode.text代码>。不要使用字符串格式,除非您确实有要格式化的字符串。旁注2:无需文件句柄即可将文件读入NSString
。只需使用nsstringwithcontentsoffile:encoding:error:
。感谢您的提示!:)