Iphone 创建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

因此,在我的应用程序的第一个viewcontroller中,尝试创建一个包含字符串的csv文件,但由于某些原因它无法工作。我使用以下代码:

-(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:
。感谢您的提示!:)