4

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

虽然看起来运行良好,但 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] 的文件名问题,但没有成功。此外,如果我将 atomic 更改为 YES ,则会出现以下错误:

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[NSFileManager moveItemAtPath:toPath:error:]:destination path is nil”

任何帮助将不胜感激,谢谢

4

1 回答 1

2

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

initWithCVSFile:需要[fileURL path]传递给它。

于 2012-08-01T15:25:54.340 回答