exportar desde contactos iphone ios xcode core-data export-to-csv

desde - exportar contactos iphone a pc



cómo exportar datos básicos a CSV (2)

Un CHCSVWriter tiene varios métodos para construir archivos CSV:

-writeField: acepta un objeto y escribe su -descripción (después de haberse escapado correctamente) en el archivo CSV. También escribirá separador de campo (,) si es necesario. Puede pasar una cadena vacía (@ "") o nulo para escribir un campo vacío.

-writeFields: acepta una lista de objetos delimitada por comas y nula y envía cada uno a -writeField :.

-writeLine se utiliza para finalizar la línea CSV actual. Si no invoca -writeLine, todos sus campos CSV estarán en una sola línea.

-writeLineOfFields: acepta una lista de objetos delimitada por comas y nula, envía cada uno a -writeField :, y luego invoca -writeLine.

-writeLineWithFields: acepta una matriz de objetos, envía cada uno a -writeField :, y luego invoca -writeLine.

-writeCommentLine: acepta una cadena y la escribe en el archivo como un comentario de estilo CSV.

Además de escribir en un archivo, CHCSVWriter se puede inicializar para escribir directamente en un NSString .

Algo así debería funcionar para ti.

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);

Me gustaría usar CHCSVParser para exportar mis datos Core a CSV. Sé cómo obtener todo el valor de la entidad, pero no sé cómo escribir en CSV.

¿Alguien puede enseñarme cómo escribir en CSV con 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); }


La respuesta anterior parece estar en desuso, el autor reemplazó el método con otro que parece. Esto funcionó para mí, espero que ayude:

NSOutputStream *stream = [[NSOutputStream alloc] initToMemory]; CHCSVWriter *writer = [[CHCSVWriter alloc] initWithOutputStream:stream encoding:NSUTF8StringEncoding delimiter:'','']; for (Type *instance in fetchedResults) { [writer writeLineOfFields:@[instance.propertyA, instance.B]]; } [writer closeStream]; NSData *buffer = [stream propertyForKey:NSStreamDataWrittenToMemoryStreamKey]; NSString *output = [[NSString alloc] initWithData:buffer encoding:NSUTF8StringEncoding];