2011-11-07 1 views
0

Juste une petite question. Je suis un peu incertain à ce sujet.Est-il possible de lire et de mettre à jour les paramètres?

Lorsque j'ajoute un fichier Settings.plist à mon projet iPhone Objective C et en lit les paramètres. Est-il possible de mettre à jour les paramètres de ce fichier? Ou est-ce fichier uniquement lisible et doit créer une copie à un autre endroit comme celui-ci:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

et vérifier son existence au lancement?

+1

Reportez-vous à la section [Mise à jour et modification des paramètres de fichiers plist avec les nouvelles versions d'une application] [1]. [1]: http://stackoverflow.com/questions/1609305/updating-changing-settings-plist-files-with-new-versions-of-an-app –

+0

dont plist vous demandez ?? est-ce le projet d'un projet ( -info.plist) ??? – DShah

+0

Découvrez http://stackoverflow.com/questions/8029426/how-to-load-an-nsdictionary-from-a-file-created-with-writetofile/8030445#8030445 – syclonefx

Répondre

1

Vous ne pouvez pas modifier les fichiers que vous avez inclus dans votre application via Xcode, vous pouvez donc les copier dans le dossier des documents de l'utilisateur.

Cependant, comme vous êtes intéressé par un fichier de paramètres plist, je vous conseille d'enregistrer les paramètres à l'aide NSUserDefaults, qui enregistre automatiquement un fichier .plist: Dans le délégué de l'application sur applicationDidFinishLoading écrire

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
if (![defaults boolForKey:@"firstRunComplete"]) { 
    [defaults setObject:optionOne forKey:@"optionOne"]; //replace 
    [defaults setObject:optionTwo forKey:@"optionTwo"]; //replace 
    [defaults setBool:YES forKey:@"firstRunComplete"]; 
    [defaults synchronize]; 
} 

Et lorsque vous voulez changer l'une des options

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setObject:optionOne forKey:@"optionOne"]; //replace 
[defaults setObject:optionTwo forKey:@"optionTwo"]; //replace 
[defaults synchronize]; 

vous pouvez également utiliser cette méthode pour l'édition de fichiers plist:

NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath]; 
[plistDict writeToFile:filePath atomically: YES]; 
Questions connexes