ios如何将core data导出到 CSV

发布时间: 2017/3/27 19:02:35
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我将喜欢使用 CHCSVParser 将我core data导出到 CSV。我知道如何从实体,获得所有的价值,但我不知道如何写入 CSV。

谁能教我如何写入 CSV 与 CHCSVParser

// Test listing all Infos from the store
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription 
                               entityForName:@"NoteLog" inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (NoteLog *noteInfo in fetchedObjects) {

    NSLog(@"Name: %@", noteInfo.city );
    NSLog(@"Name: %@", noteInfo.country);
    NSLog(@"Name: %@", noteInfo.datetime);
    NSLog(@"Name: %@", noteInfo.notelatitude);
    NSLog(@"Name: %@", noteInfo.notelongtitude);
    NSLog(@"Name: %@", noteInfo.state);
    NSLog(@"Name: %@", noteInfo.text);        
}  

解决方法 1:

A CHCSVWriter 已构建 CSV 文件的几种方法︰

-writeField:接受一个对象,并写它-(后被正确转义) 描述出到 CSV 文件。它也会写入字段分隔符 (,) 如果必要。你可以传递一个空字符串 (@"") 或零写空字段。

-writeFields:接受一个以逗号分隔和零终止的对象列表,并发送每一个-writeField:。

-writeLine用来终止当前的 CSV 行。如果你不调用-writeLine,然后所有 CSV 字段将在单独的一行。

-writeLineOfFields:接受一个以逗号分隔和零终止的对象列表,发送每一个-writeField:,然后调用-writeLine。

-writeLineWithFields:接受一个对象数组,发送每一个-writeField:,然后调用-writeLine。

-writeCommentLine:接受一个字符串并将它写出到文件作为 CSV 风格的注释。

除了写到文件中, CHCSVWriter 可以初始化为书面形式直接向 NSString

这样的事情应该为你工作。

CHCSVWriter *writer = [[CHCSVWriter alloc] initForWritingToString];

for (NoteLog *noteInfo in fetchedObjects) {

    [writer writeLineOfFields:noteInfo.city, noteInfo.country, noteInfo.datetime, noteInfo.notelatitude, noteInfo.notelongtitude, noteInfo.state, noteInfo.text, nil];     
}  

NSLog(@"My CSV File: %@",writer.stringValue);
赞助商