iPhone en lecture/écriture .fichier plist
Je suis en train de faire une application où j'ai besoin de stocker des informations que l'utilisateur a fournies. J'essaie d'utiliser un .fichier plist pour stocker les informations, j'ai trouvé ceci:
NSString *filePath = @"/Users/Denis/Documents/Xcode/iPhone/MLBB/data.plist";
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath];
[plistDict setValue:@"Man" forKey:@"Gender"];
[plistDict writeToFile:filePath atomically: YES];
Le problème est que l'application ne fonctionnera que tant que je suis en essais dans le simulateur d'iPhone. J'ai essayé cette Modifier les Données dans un fichier Plist mais sans succès. J'ai aussi lu quelque chose à propos de ce que j'ai besoin de l'ajouter à ma bundle, mais comment?
Nouveau code:
- (IBAction)segmentControlChanged{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *plistLocation = [documentsDirectory stringByAppendingPathComponent:@"data.plist"];
NSMutableDictionary* plistDict = [[NSMutableDictionary alloc] initWithContentsOfFile:plistLocation];
if (Gender.selectedSegmentIndex == 0) {
[plistDict setObject:@"Man" forKey:@"Gender"];
[plistDict writeToFile:plistLocation atomically: YES];
}
else
{
[plistDict setObject:@"Women" forKey:@"Gender"];
[plistDict writeToFile:plistLocation atomically: YES];
}
}
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous avez ajouté votre fichier plist de votre dossier de ressources dans Xcode (où l'on place l'image, si non, alors vous avez besoin de place que la première). Les données sur les ressources va à
[NSBundle mainBundle]
par défaut et iOS ne nous permettent pas de modifier les données à l'intérieur de bundle. Donc, vous devez d'abord copier le fichier de Répertoire Documents.Voici le code pour copier le fichier à partir de
NSBundle
pour le répertoire Documents.Maintenant, vous pouvez utiliser le retour de l'
documentDirPath
d'accès à ce fichier et de les manipuler (Lecture/Écriture) au cours de cette.Plist la structure est:
Voici le code à écrire des données dans un fichier plist:
Êtes-vous en utilisant le même chemin d'accès sur votre appareil? Des applications sur un appareil sont en bac à sable et ne peut lire/écrire des fichiers dans leur répertoire documents. Prenez ce chemin de fichier comme ceci et ajouter votre nom plist. Cette approche permettra également de travailler sur le simulateur.
Essayez ceci: