App per iPhone :Dove devo mettere un file di configurazione?
Domanda
Nella mia applicazione, ho un semplice file ASCII che memorizza alcune config info e altre piccole info che usa e modifiche.Voglio copiare il file su iPhone con l'app.
1) la Prego di dirmi dove devo mettere questo file config.txt) in xcode.Devo metterlo in Risorse ?
2) Come posso accedere in iPhone ?Posso solo usare
str = [NSString stringWithContentsOfFile:@"config.txt"]
o devo usare un più completo del percorso;se sì, qual è ?
Soluzione
Si dovrebbe usare NSUserDefaults
per memorizzare le impostazioni utente, se l'applicazione è possibile cambiare loro.La documentazione è qui.
Le impostazioni vengono memorizzate come file plist, in modo da poter memorizzare NSDictionary
le istanze, NSArray
le istanze, etc.
Se si desidera pre-compilare il NSUserDefaults
con alcune impostazioni, è possibile farlo con un po ' di codice come questo:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"defaults" ofType:@"plist"];
NSDictionary *defaultsDict = [NSDictionary dictionaryWithContentsOfFile:filePath];
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsDict];
Hai bisogno di mettere un default.file plist delle Risorse la cartella con le impostazioni di default, e utilizzare il codice riportato sopra.Ho eseguito questo codice AppDelegate s +(void)initialize
il metodo, ma si può scegliere un altro luogo per effettuare la chiamata.
Altri suggerimenti
Si può mettere in Risorse, sì.Per ottenere il file, allora, si può semplicemente utilizzare:
[[NSBundle mainBundle] pathForResource:@"config" ofType:@"txt" inDirectory:@""]]
Mi permetto di suggerire NSUserDefaults
per le impostazioni, tuttavia?Essa vi consente di risparmiare un sacco di problemi in lettura e scrittura.
E se si desidera recuperare il NSUserDefaults, è possibile effettuare le seguenti operazioni:
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"];
Se nsuserdefaults non soddisfa le vostre esigenze, si potrebbe salvare la config informazioni in un file nella cartella Documenti.Se il file non esiste, all'avvio, quindi leggere la versione in Risorse.