使用CHCSVWriter保存CSV文件

时间:2012-07-24 07:57:59

标签: objective-c ios csv nsfilemanager

我正在尝试使用CHCSVWriter编写一个大型CSV文件,从核心数据管理对象到apps文档目录。

虽然看起来运行正常,但cvs文件在完成后似乎不存在。

  NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    NSString *filename = @"productFileExport.csv";
    NSURL *fileURL = [NSURL fileURLWithPathComponents:[NSArray arrayWithObjects:documentsDirectory, filename, nil]];    

    CHCSVWriter *cvsExport = [[CHCSVWriter alloc] initWithCSVFile:[fileURL absoluteString] atomic:NO];

    for (Product *prod in fetchedObjects) {
        [cvsExport writeLineOfFields:prod.code, prod.barcode, prod.name, prod.size, prod.casesize, nil];
    }
    [cvsExport closeFile];

我认为这是一个文件名的问题我试过改变initWithCVSFile:从[fileURL absoluteString]到[fileURL path]和[fileURL description]没有运气。 此外,如果我将原子变为YES,则会出现以下错误:

  

*由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'* - [NSFileManager   moveItemAtPath:toPath:error:]:目标路径为nil'

非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:2)

问题在于cvsExport writeLineOfFields传递的第一个对象为nil,因此没有任何内容写入文件。

还需要传递initWithCVSFile: [fileURL path]