2011-05-23 5 views
0

J'ai quelque chose d'intéressant ici, j'utilise xcode 4 pour mon projet et je veux créer un fichier .plist simple pour enregistrer plusieurs valeurs qui seront utilisées à différentes fins pendant l'exécution du code. Voici le code que j'utilise pour créer plist:Xcode 4 création .plist

- (NSString *)dataFilePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist]; 
} 

dernière ligne de code qui devrait ajouter le nom plist à chemin ne pas faire son travail. Plist n'est jamais créé. Maintenant, chose étrange, je parviens à créer il y a quelques jours en utilisant le même code. Après cela, je déplace uniquement ce morceau de code dans AppDelegate, car j'appelle ce code de différents endroits. J'ai découvert que cela ne fonctionne pas lorsque je passe à l'émulateur 4.3, puis l'essayer sur un appareil iPhone. Quand je passe à l'émulateur 4.2 cela fonctionne car il y a déjà un plist, cependant quand je change de nom (pour en créer un nouveau) rien ne se passe - ce qui signifie que la liste n'est pas créée. J'essaie également de déplacer le code vers l'emplacement d'origine, mais cela n'a pas donné le résultat souhaité.

Répondre

0

Votre code ne doit pas créer de plist de toute façon, seulement retourner un chemin. Afin de réellement enregistrer un plist sur le chemin choisi, vous pouvez choisir plusieurs approches, par exemple utiliser la méthode suivante sur NSDictionary:

- (void)saveDictionary 
{ 
    NSDictionary *dictionary = [NSDictionary dictionaryWithObject:@"bla" forKey:@"test"]; 
    NSString *path = [self datafilePath]; 
    [dictionary writeToFile:path atomically:YES]; 
} 

- (NSString *)dataFilePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(
    NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    return [documentsDirectory stringByAppendingPathComponent:@"somelist.plist]; 
} 
+0

Merci dude. Bien sûr, j'ai ceci dans mon code, mais accidentellement je ne l'ai pas copié dans le délégué ... et là c'est ... merci encore de m'avoir indiqué dans la bonne direction – user739384

Questions connexes