pList: récupérer une seule propriété sans tout récupérer auparavant?

Bonjour tout le monde :slight_smile:


 

Je suis occupé de me battre avec les pLists, je vous explique:

J'ai un ficher pList organisé comme suit:

 

| __ facile

| ____ description

| ____ borne inferieur

| ____ borne superieur

|

| -- normal

| ____ description

| ____ borne inferieur

| ____ borne superieur

|

| -- difficile

| ____ description

| ____ borne inferieur

| ____ borne superieur

 

J'aimerai pouvoir récupérer, par exemple, "normal".

Mais pour le moment, si je veux récupérer "normal", je dois d'abord récupérer tout le contenu de ma pList avant de pouvoir faire quelque chose comme:

 

    difficultes["normal"]

 

Dans le cas présent, je pense que tout récupérer n'est pas trop grave, puisque le fichier est tout petit, mais si mon fichier commence à  grossir sérieusement, avec des key qui sont des dictionnaire dans des dictionnaires, etc?

 

J'ai aussi pensé à  faire un dossier "difficultes" dans xCode, et ensuite trois fichier pList "facile", "normal" et "difficile", ainsi je récupère le fichier dont j'ai besoin, et je ne dois plus récupérer toutes les difficultés, mais alors, le problème qui se pose, c'est si dans un de mes viewController, j'ai besoin d'afficher:

 

    facile

    normal

    difficile

 

Je vais alors devoir lire mes trois fichier pList puis  récupérer les infos que j'ai besoin avant de les afficher? C'est un peu lourd, surtout si je commence à  avoir un certain nombre de fichiers pList...

 

J'ai ensuite pensé faire les 3 fichiers pList, et un plus général "difficultes" par exemple, ainsi, je stocke toutes les infos des difficultés dans leur pList respectif, et juste leur nom dans le pList général, mais alors, imaginons que j'ai besoin d'afficher dans mon viewController le nom de la difficulté et la description, je vais alors devoir stocker le nom et la description de la difficulté dans les fichiers respectifs ET dans le fichier général? Bonjour les ennuis si je commence à  dupliquer les infos...

 

Avez-vous une idée de comment je peux fonctionner?

 

Merci de votre aide,

 

Alexandre

Réponses

  • Bonjour,


     


    De deux choses l'une:


    1/ Soit tu te prends la tête pour rien, surtout si ton fichier ne fais pas des centaines de ko.


    2/ Utiliser une base de données (SQLite)


  • Merci de ta réponse


    On est d'accord que dans le cas présent, le fichier est tellement petit que ça n'a pas d'importance, mais mes autres fichiers risquent d'être très gros (ici c'était plus facile à  expliquer avec un exemple simple)


    Je ne souhaite pas utiliser SQL (les pList sont facile pour mettre à  jour des infos lors de mise à  jour chez l'utilisateur (dans le cas de niveaux d'un jeu par exemple))
  • Un fichier CoreData est aussi facile à  mettre en oeuvre pour les mises à  jour. Tu peux employer les plist pour créer tes données et ensuite utiliser une petite application pour transférer toutes les données dans un fichier CoreData. On appelle cela une " moulinette ".

  • Comme je te le disais aussi dans l'autre forum, tu peux utiliser un fichier Realm si tu veux éviter SQLite. Tu as le Realm Browser (https://github.com/realm/realm-browser-osx) qui te permet de générer/mettre à  jour rapidement ton fichier de données pour tes futures versions


Connectez-vous ou Inscrivez-vous pour répondre.