Xcode – Crear file csv / spreadsheet

Tengo tres matrices. La primera matriz contiene cadenas, igual que la segunda, sin embargo, la tercera contiene NSNumber 's. De todos modos, volviendo al tema … ¿Cómo puedo crear un file csv (que es un file Excel / numbers) como una spreadsheet para contener estos datos. ¿Es posible?

Estas son mis tres matrices:

locationArray – contiene muchas cadenas dateArray – contiene muchas cadenas millasArray – contiene muchos NSNumber 's

Pero cada matriz contiene la misma cantidad de objects, por lo que (por ejemplo, en una vista de tabla) puede dividir los datos en un NSDictionary . Es como una cadena

Entonces, se vería así:

 NSDictionary *firstFlight = [NSDictionary dictionaryWithObjectsAndKeys:[locationArray objectAtIndex: 0], @"FlightName", [dateArray objectAtIndex: 0], @"FlightDate", [milesArray objectAtIndex: 0], @"FlightMiles", nil]; 

Y ese dictionary contendría un vuelo (la funcionalidad de esta aplicación de testing es registrar vuelos). Entonces, si objectAtIndex: esto usando un ciclo for y reemplazé objectAtIndex: con el número en bucle podría get muchos dictionarys de los vuelos.

Ahora que entiendes cómo funciona mi estructura de datos. ¿Cómo puedo crear un file CSV de Excel / numbers / spreadsheet para que parezca así, por ejemplo? (Solo una captura de pantalla de lo que podría parecer):

(LOS MILLARES DATOS SE HACEN SOLAMENTE)

introduzca la descripción de la imagen aquí

 NSArray *firstArray, *secondArray, *thirdArray; NSMutableString *csv = [NSMutableString stringWithString:@"Name,Date,Miles"]; NSUInteger count = [firstArray count]; // provided all arrays are of the same length for (NSUInteger i=0; i<count; i++ ) { [csv appendFormat:@"\n\"%@\",%@,\"%d\"", [firstArray objectAtIndex:i], [secondArray objectAtIndex:i], [[thirdArray objectAtIndex:i] integerValue] ]; // instead of integerValue may be used intValue or other, it depends how array was created } NSString *yourFileName = @"your filename"; NSError *error; BOOL res = [csv writeToFile:yourFileName atomically:YES encoding:NSUTF8StringEncoding error:&error]; if (!res) { NSLog(@"Error %@ while writing to file %@", [error localizedDescription], yourFileName ); }
NSArray *firstArray, *secondArray, *thirdArray; NSMutableString *csv = [NSMutableString stringWithString:@"Name,Date,Miles"]; NSUInteger count = [firstArray count]; // provided all arrays are of the same length for (NSUInteger i=0; i<count; i++ ) { [csv appendFormat:@"\n\"%@\",%@,\"%d\"", [firstArray objectAtIndex:i], [secondArray objectAtIndex:i], [[thirdArray objectAtIndex:i] integerValue] ]; // instead of integerValue may be used intValue or other, it depends how array was created } NSString *yourFileName = @"your filename"; NSError *error; BOOL res = [csv writeToFile:yourFileName atomically:YES encoding:NSUTF8StringEncoding error:&error]; if (!res) { NSLog(@"Error %@ while writing to file %@", [error localizedDescription], yourFileName ); }