Où garder le fichier .plist dans l'application iphone
-
09-09-2019 - |
Question
Je développe une application iPhone, dans lequel je veux utiliser un fichier .plist pour enregistrer certaines variables de configuration.
dans mon Xcode où créer ce fichier .plist et comment y accéder ???
merci,
La solution
Vous mettriez dans le dossier des ressources. Ensuite, utilisez quelque chose comme ça pour le charger:
NSString *file = [[NSBundle mainBundle] pathForResource:@"TwitterUsers" ofType:@"plist"];
NSArray *Props = [[NSArray alloc] initWithContentsOfFile:file];
Où TwitterUsers est le nom de votre fichier plist.
Si votre fichier plist contient les clés et les valeurs que vous feriez la deuxième ligne un NSDictionary au lieu de NSArray.
Autres conseils
Pour enregistrer le fichier plist dans votre répertoire Documents vous devrez inclure fichier plist dans votre application, puis lors du premier lancement copier dans le répertoire des documents.
Pour accéder au fichier dans le répertoire Documents:
NSArray *paths =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
// <Application Home>/Documents/foo.plist
NSString *fooPath =
[documentsPath stringByAppendingPathComponent:@“foo.plist”];
Je le recommande maintenant dans le répertoire des ressources dans le paquet de l'application, mais vous pouvez simplement faire glisser dans la fenêtre du projet. La méthode NSBundle
pathForResource:ofType:
devrait vous donner un chemin, que vous pouvez passer à la NSDictionary
de dictionaryWithContentsOfFile:
.
Edit: Désolé, échantillon complet de code (pensé que je l'avais déjà copiée et collée):
NSString *path = [[NSBundle mainBundle] pathForResource:@"MyConfig" ofType:@"plist"];
NSDictionary *myConfig = [NSDictionary dictionaryWithContentsOfFile:path];
EDIT Il suffit de se est produite à moi "variables de configuration" pourrait ne pas être immuable. Si tel est le cas, ne pas tenir compte de cette réponse.
Je vous recommande d'utiliser NSUserDefaults pour stocker les variables de configuration au lieu de rouler votre propre système.
Si vous modifiez un .plist
dans votre paquet d'applications, vous risquez invalider la signature sur le paquet, tout en ne se terminera pas bien.
Si vous devez stocker et modifier votre propre .plist
, rangez-le dans le répertoire Documents
, qui est également l'endroit où votre application doit stocker tout ce qu'il télécharge, crée, etc. Voir fichier et gestion des données et NSFileManager .
Par défaut, si vous avez inclus le plist dans le projet partout (sous la rubrique Ressources ou autre) XCode copie dans le paquet d'application où vous pouvez obtenir avec l'appel pathForResource
mentionné ci-dessus. Juste pensé que je mentionner que vous préférez peut-être un groupe où vous ne l'avez pas dans les ressources ...
vous pouvez trouver l'exemple livre sqlite ..... le fichier de données de silte était d'enregistrer dans le répertoire « document » .... vous connaîtrez la prcess
-
Pourquoi serait-il invalider le paquet?
-
Est-ce que ce fichier plist dans le dossier des ressources sauvegarder dans iTunes comme les fichiers dans le dossier des documents?