2008-11-26 13 views
6

¿Cómo se lee un archivo de datos en un proyecto de iPhone? Por ejemplo, digamos que tengo un archivo estático llamado "Level.dat" que está estructurado de la siguiente manera: obstáculos: 10 tiempo: 100 obstacle1: 10,20 ...Cargando archivos de datos en el proyecto de iPhone

me gustaría leer el contenido del archivo en un NSString luego hacer el análisis sintáctico. ¿Cómo leo los contenidos de un archivo en una cadena? Además, ¿en qué parte del proyecto debe residir el archivo "level.dat"? ¿Debería estar en "Recursos" o solo en el directorio principal?

¡Gracias de antemano!

Respuesta

18

Ver esta respuesta: How to fopen() on the iPhone? que muestra cómo obtener acceso a los recursos en su paquete. Una vez que tenga la ruta, simplemente use [NSString stringWithContentsOfFile: encoding: error:].

NSString *path = [[NSBundle mainBundle] pathForResource: @"level" ofType: @"dat"] 
NSError *error = nil; 
NSString *data = [NSString stringWithContentsOfFile: path 
              encoding: NSUTF8StringEncoding 
               error: &error]; 
3

Si bien esto no es lo que usted pidió, considere convertir sus archivos en plists. Usted tendrá que volver a formatear ellos en XML, pero luego puede cargarlos directamente en un NSDictionary con:

dict = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"levels" ofType:@"plist"]]; 
+0

Tenga en cuenta que puede hacer lo mismo con las matrices, es muy probable que sus datos se adapten mejor a un nivel superior de matrices que a un diccionario. –

0

¿Ha considerado poner los datos en una base de datos SQLite en lugar de un archivo plano? Encuentro que la API es muy fácil de usar en el iPhone.

Así es como hago todo el almacenamiento de datos en el teléfono ahora.