création d'un menu d'application sans IB
bofy
Membre
Bonjour
Toujours dans ma ligne de me passer de IB sous Cocoa avec Xcode, j'ai réussi à créer le menu de mon application à partir d'un fichier .plist (de structure stricte et, sans doute, peu robuste...) en passant par :
- création d'un document XML à partir du fichier .plist
- traverser le document XML et générer un tableau
- utiliser le tableau pour construire et afficher le menu de l'application
Ca marche et ça me permet de générer le menu en modifiant uniquement le .plist, mais ça me paraà®t une usine à gaz. Quelqu'un aurait-t-il une idée d'une simplicité géniale ?
Me contacter et j'enverrai les sources.
Toujours dans ma ligne de me passer de IB sous Cocoa avec Xcode, j'ai réussi à créer le menu de mon application à partir d'un fichier .plist (de structure stricte et, sans doute, peu robuste...) en passant par :
- création d'un document XML à partir du fichier .plist
- traverser le document XML et générer un tableau
- utiliser le tableau pour construire et afficher le menu de l'application
Ca marche et ça me permet de générer le menu en modifiant uniquement le .plist, mais ça me paraà®t une usine à gaz. Quelqu'un aurait-t-il une idée d'une simplicité géniale ?
Me contacter et j'enverrai les sources.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Lire directement le .plist, non ?
Car il y a tout ce qu'il faut (voir classe NSDictionary) pour charger un plist dans un dictionnaire et ensuite le parcourir pour en extraire les données à mettre dans le menu.
Mais un menu est une arborescence, or il me semble qu'un dictionary est une liste. Bien sûr on peut faire des dictionary de dictionary... Je me trompe ?
Comme il s'agit toujours de traverser un arbre, l'arbre menu, où est le gain apporté par dictionary, par rapport au document XML ?
Mon vrai problème est plutôt de trouver une structure de fichier de données en format texte qui puisse décrire l'arbre menu. Les fichiers XML semblent adaptés, et en plus recommandés par Apple... C'est tout un programme ! Mais il peut y avoir d'autres solutions ?
Et ce XML tu peux le lire et le stocker directement dans un NSArray par code (readFromFile:) et comme ça tu peux le parcourir avec les méthodes de NSArray directement, boucler sur chaque élément, etc.
Ceci dit si tu tiens à utiliser les XMLTree et ton format perso de XML, pourquoi dans la méthode que tu utilises tu le fais en 2 temps ? parcours du XML pour mettre dans un tableau pour reparcourir le tableau pour créer tes menus... pourquoi ne pas créer les menus directement lors du parcours du XML ?
Bon en gros c'est ce que je fais, et il apparaà®t qu'il n'y a pas de solution miracle ?
(ce qui n'est guère surprenant...)
Je vais essayer le truc du .plist direct dans un array, mais il me semblait plus cohérent de passer par les NSXML, dans la mesure où un .plist est du XML. Mais bon !
Bien sûr, mais je préfère toujours décomposer les choses lors de la mise au point
J'ai encore du pain sur la planche avec mes menus...