Pregunta

En mi aplicación, tengo un simple archivo ASCII que almacena alguna información de configuración y otra pequeña información que utiliza y cambios. Quiero copiar ese archivo en el iPhone con la aplicación.

1) Por favor, dime donde debería poner este archivo (config.txt) en Xcode. Debería decirlo, en los recursos?

2) ¿Cómo voy a acceder a él en el iPhone? ¿Puedo utilizar

str = [NSString stringWithContentsOfFile:@"config.txt"] 

o tengo que utilizar una ruta más completa; En caso afirmativo, ¿qué es esto?

¿Fue útil?

Solución

Debe utilizar NSUserDefaults para almacenar la configuración del usuario, si la aplicación puede cambiarlos. La documentación es aquí .

La configuración se almacena como un archivo plist, por lo que puede almacenar instancias NSDictionary, instancias NSArray, etc.

Si desea rellenar previamente su NSUserDefaults con algunos ajustes, puede hacerlo con algo de código como éste:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"defaults" ofType:@"plist"];
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];

Es necesario poner un archivo defaults.plist en su carpeta de recursos con la configuración predeterminada, y utilizar el código de seguridad. Corro que el código del método +(void)initialize del AppDelegate, pero puede elegir otro lugar para llamarlo.

Otros consejos

Se puede poner en Recursos, sí. Para obtener el archivo y, a continuación, sólo tiene que utilizar:

[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]]

¿Puedo sugiero NSUserDefaults para sus ajustes, sin embargo? Esto le ahorrará un montón de problemas en la lectura y escritura de ellos.

Y si desea recuperar los NSUserDefaults , puede hacer lo siguiente:

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];

// getting a NSString
NSString *myString = [prefs stringForKey:@"keyToLookupString"];

// getting a NSInteger
NSInteger myInt = [prefs integerForKey:@"integerKey"];

// getting a Float
float myFloat = [prefs floatForKey:@"floatKey"];

Si NSUserDefaults no satisface sus necesidades, puede almacenar la información de configuración en un archivo en el directorio de documentos. Si el archivo no existe en el arranque, a continuación, lea la versión que tiene en Recursos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top