me alegro que te guste :)
Básicamente, CHCSVParser
solamente analiza los archivos CSV. Le da una ruta a un archivo CSV y le devolverá un montón de NSStrings
. Lo que hagas más allá de ese punto depende completamente de ti.
Digamos que ha incluido un archivo CSV en su aplicación iOS llamado "Data.csv". Aquí te mostramos cómo utilizar CHCSVParser
a analizarlo:
NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"csv"];
NSError *error = nil;
NSArray *rows = [NSArray arrayWithContentsOfCSVFile:path encoding:NSUTF8StringEncoding error:&error];
if (rows == nil) {
//something went wrong; log the error and exit
NSLog(@"error parsing file: %@", error);
return;
}
En este punto, rows
es una matriz. Cada elemento en rows
es en sí mismo una matriz que representa una sola fila en el archivo CSV. Y cada elemento de esa matriz es NSString
.
Así que digamos que el archivo CSV se ve así:
Barringer,Arizona,United States,Earth
"Chicxulub, Extinction Event Crater",,Mexico,Earth
Tycho,,,Moon
Lonar,Maharashtra,India,Earth
Si lo ejecuta a través del analizador, que pondremos en el equivalente a esto:
[NSArray arrayWithObjects:
[NSArray arrayWithObjects:@"Barringer",@"Arizona",@"United States",@"Earth",nil],
[NSArray arrayWithObjects:@"Chicxulub, Extinction Event Crater",@"",@"Mexico",@"Earth",nil],
[NSArray arrayWithObjects:@"Tycho",@"",@"",@"Moon",nil],
[NSArray arrayWithObjects:@"Lonar",@"Maharashtra",@"India",@"Earth",nil],
nil];
Lo que se hace con entonces es tu negocio. El analizador CSV no sabe nada sobre UITableView
, por lo que puede tomar estos datos y rediseñarlos de una manera que le resulte cómodo y que se ajuste a su modelo de datos.
Además, recuerde que al usar CHCSVParser
, acepta respetar the terms under which it is made available. :)
Gracias, Dave, ¡eso ayuda mucho! Entonces, ¿dónde está el mejor lugar para implementar este método, en mi tabla VC 'viewDidLoad' método? Y la API automáticamente sabe que cuando hay un ',' dentro de dos '" "', ¿eso es todo una cadena? – Jon
@Jon Eso fue un error tipográfico que arreglé. Re: ¿el mejor lugar? Dentro de un CV es un lugar decente para ponerlo, supongo. El mejor lugar para ponerlo es algo que depende completamente de tu aplicación. :) –
Gracias Dave. Intenté hacerlo en ViewDidLoad pero la aplicación demora una eternidad en abrirse ahora. ¿Tienes alguna otra sugerencia? Funciona bien en el simulador, pero en mi dispositivo la aplicación tarda 30 segundos en abrirse. Necesito estos datos para cargar el tableView inicial. – Jon