ios - 在 iOS 设备上读取 csv 文件时出错

标签 ios objective-c csv

我创建了一个保存为 csv 文件的应用程序,该应用程序在 iOS 模拟器中运行良好,可以读写。当我将应用程序加载到 iOS 设备时,它没有数据。

- (IBAction)saveInfo:(id)sender {
    NSString *resultLine = [NSString stringWithFormat:@"%@,%@,%@\n",
                            self.food.text,
                            self.movies.text,
                            self.channel.text];
    NSArray *path= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docPath = [path objectAtIndex:0];
    //resultView.text = docPath;

    NSString *filename = [docPath stringByAppendingString:@"result.csv"];
    resultView.text = filename;

    if (![[NSFileManager defaultManager] fileExistsAtPath:filename])
    {
        [[NSFileManager defaultManager] createFileAtPath:filename contents:nil attributes:nil];
    }
    NSFileHandle *fileHandle = [NSFileHandle fileHandleForUpdatingAtPath:filename];
    [fileHandle seekToEndOfFile];
    [fileHandle writeData:[resultLine dataUsingEncoding:NSUTF8StringEncoding]];
    [fileHandle closeFile];
    self.food.text = nil;
    self.movies.text = nil;
    self.channel.text =nil;
    NSLog(@"Info saved");


}


- (IBAction)viewInfo:(id)sender {
    NSArray *path= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *docPath = [path objectAtIndex:0];
    NSString *filename = [docPath stringByAppendingString:@"result.csv"];

    NSString *fileContent=[NSString stringWithContentsOfFile:filename encoding:NSUTF8StringEncoding error:nil];

    resultView.text = fileContent;

}

最佳答案

您构建的路径不正确。使用:

NSArray *path= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath = [path objectAtIndex:0];
NSString *filename = [docPath stringByAppendinPathComponent:@"result.csv"];

您的代码导致路径类似于 <path to app bundle>/Documentsresult.csv在设备上,您无法写入应用程序包。

关于ios - 在 iOS 设备上读取 csv 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24545179/

相关文章:

iOS MapView 位于导航栏、状态栏和标签栏 Controller 下方

iphone - 在 UIActionSheet 中添加 UIPickerView 时,iOS 7 上出现无效上下文错误?

iphone - 覆盖数据库或更新 (iPhone)?

python - 将时间字符串(小时 :Min:Sec. 毫秒)快速转换为 float

iOS UITableView : what's the different between "cellForRowAtIndexPath" and "willDisplayCell: forRowAtIndexPath:"

javascript - iOS 上的 JS 语音合成问题

objective-c - mouseUp 在 Cocoa 中没有触发?

ios - 从 UIAlertView 中的 UITextField 获取文本以设置标签的文本

csv - Athena 无法使用 OpenCSVSerde 解析日期

python - 使用os.walk读取多个输入文件,以及GetMessage进度更新消息