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:]: 宛先パスがありません'

どんな助けでも大歓迎です、ありがとう

4

1 に答える 1

2

問題は、cvsExport writeLineOfFields渡された最初のオブジェクトが nil であったため、ファイルに何も書き込まれませんでした。

また、それに渡すinitWithCVSFile:必要があります。[fileURL path]

于 2012-08-01T15:25:54.340 に答える