Créer un fichier plist avec du code ?
apocaalypso
Membre
Bonjour,
je souhaiterai pouvoir créer un fichier .plist dans le bundle des ressources avec du code mais je ne sais pas vraiment comment m'y prendre, j'ai d'abord cherché sur Internet mais je n'ai pas trouvé de lien utile.
Merci !
je souhaiterai pouvoir créer un fichier .plist dans le bundle des ressources avec du code mais je ne sais pas vraiment comment m'y prendre, j'ai d'abord cherché sur Internet mais je n'ai pas trouvé de lien utile.
Merci !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si tu fais créer un plist par ton appli soit tu demandes à l'utilisateur l'emplacement où sauver le plist, soit tu le sauves dans un endroit type réservé à ton appli, typiquement dans un dossier portant le nom de ton appli dans le dossier ~/Library/Application Support.
Enfin bon pour les tests tu peux déjà mettre ton plist sur le bureau et vérifier que ça marche mais à terme faudra le mettre dans une endroit "propre".
Ca signifie que ce n'est pas possible ou bien que ce n'est pas la philosophie d'un bundle? Parce qu'à priori on a accès à ce qu'il contient non? Puisqu'on peut le faire à la mano via le finder.
Par contre on peut tout à fait écrire et lire dans le "sand box" de l'application qui se présente sous la forme suivante :
Mais je ne m'en sort pas du tout avec mon code :
J'essaye uniquement de créer un .txt pour l'instant parce que déjà que j'ai du mal. Il me dit que NSDictionnary may not respond, et il n'y a rien de bien sur Internet.
NSDictionary * dico=.....
[dico writeToFile:path atomically:YES];
Je pense que finalement se serait plus pratique de passer par SQLite non ? Si il est disponible sur Mac OS X.
Non, pas plus simple. Si tu gères des ensembles, donc des NSSet (c'est bien ce que tu veux dire ?), il faut les transformer en NSArray avant d'utiliser writeToFile: atomically:
NSDictionary * dico1=[NSDIctionary dictionaryWithObjectsAndKeys:
@Toto,@Createur,
@Fait la mayonnaise,@Description,
[NSDate date],@Date,
nil
];
...
NSArray * array=[NSArray arrayWithObjects:dico1,dico2,...,nil];
[array writeToFile:@chemin atomically:YES];
Mais lorsque je regarde dans Application Support il ne m'a pas créer le fichier, le [array writeToFile:realPath atomically:YES] retourne NO apparemment.
Allez, un peu de lecture
Qu'est ce qui empêche une application de créer un fichier .plist (ou autre) dans son propre bundle? rien j'ai l'impression.
On n'a pas l'habitude de voir Apocaalypso sur le Mac alors ...
Bon mais ton code ne pose aucun problème ...
Donc je vérifie s'il existe et sinon je tente de le créer via AppleScript (je n'ai pas réussi à trouver comment le faire en Objective-C) mais ça ne marche pas, pourtant ce même script fonctionne dans l'Editeur de Script :
Cette fois-ci c'est pour lire mon plist, voici mon code :
Mais la valeur de plist est (NULL), pourtant le chemin existe et est correct.
J'ai opté pour la méthode suivante qui m'a l'air plus claire :
Merci à tous de votre aide.