A l'ouverture de l'application qui nous garanti que le fichier p-list existe ?
En particulier, la première fois que l'application est exécutée sur votre machine. Le fichier ne peut pas déjà dans le dossier "Préférences" de votre propre machine où est sa place. Il est uniquement dans le bundle de distribution de l'application.
Il faut donc que l'application teste son existance dans le dossier Préférences de votre machine, et si c'est la première exécution de l'application fasse la création.
De plus, comment, en distribuant mon application, cette p-list sera aussi distribuée sur votre Macintosh.
Il faut inclure la p-list dans le Bundle.Un Bundle c'est quoi ? - Toutes applications Macintosh est distribuées dans un dossier qui peut s'ouvrir par clic droit ou "ctrl" clic. Il faut donc, mettre dans ce bundle, notre fichier p-list ou tous autres fichiers d'initialisation pour générer la p-list du dossier préférence.
Donc, il faut vérifier que c'est la première utilisation. Si oui, générer la p-list, qui n'existe pas, ou simplement la copier.
Comment savoir si c'est la première fois. Simple, il suffit de vérifier l'absence du fichier p-list dans votre catalogue. Si absent, la copier du bundle vers vos préférences.
Plusieurs étapes, sachant que le nom d'utilisateur, et de disque dur sont différent d'une machine à l'autre, et que vous avez mis l'application où cela vous plaisait :
Voici le code en entier. Code totalement indépendant d'une application à une autre. Ici photo extraite d'une autre application qui m'a servi de modèle pour créer le tutoriel. Je l'ai recopié tel quelle dans MonLogiciel. Vous pouvez faire pareil sans vous préoccuper de ce qu’elle fait. Il suffit d'appeler cette subroutine de "awake from nib" à l'ouverture de la fenêtre principale.
Maintenant, si vous voulez savoir ce que fait laPlistExistelle() lisez la suite avec patience.
Définissons ces variables en property pour les conserver :
set resourceFolder to ((POSIX file (resource path of main bundle)) as string) & ":"
set defaultPrefsFile to resourceFolder & prefsFileName
Avec le nom de votre fichier préférence affecté par une commande "property".
property prefsFileName : "com.legallou.MonLogiciel.plist"Résultat :
"chemin d'accès du bundle.......:Resources:com.legallou.MonLogiciel.plist"set userPrefsFolder to ((path to preferences folder from user domain) as string)
set userPrefsFile to userPrefsFolder & prefsFileName
Ajoutez le nom de votre fichier préférence défini par la commande "property".
property prefsFileName : "com.legallou.MonLogiciel.plist"
Résultat :
"iMac:Users:alg:Library:Preferences:com.legallou.MonLogiciel.plist"A partir du chemin d'accès en POSIX, le générer en alias conforme au Mac :
set defaultPrefsFileAlias to defaultPrefsFile as alias
Résultat :
-- "iMac:...:com.legallou.MonLogiciel.plist" as aliasif fileExists(userPrefsFile) then.......
Avec le sous-programme :
Le transfert du fichier p-list du bundle dans les préférences est la meilleure solution. En fait la seule si vous avez des paramètres personnels d'initialisation en plus des données utilisateurs.
Votre p-list a été créé pendant la mise au point dans vos préférences.
Sélectionnez et glisser-déposer ce fichier sur l'icône du dossier ou dans le dossier "Resources" de xCode.
Un Pop-Up menu s'ouvre. Cocher "Copy items into destination group's folder"
Cliquez sur "Add".
Retrouver votre fichier p-list dans votre dossier bundle..
Un double click dessus ouvre l'utilitaire "Property List Editor".
Il a une bonne tête se fichier, et facilement lisible. Notez la date en format court.
En téléchargement le projet MonLogiciel en version au niveau où nous en sommes du tutoriel MonLogiciel108.zip.