Bon, j'arrive à enregistrer mon carnet après avoir importé l'ancien, je peux éditer les profils non sans quelques petits problèmes (on verra ça plus tard). :P
Juste une question sur les méthodes utilisées par Bru : Quand on écrit la méthode suivante :
Oui, bien sûr, on le trouve où cet argument, comment il est initialisé ?
Tu te débrouilles très bien.
Normalement, tu as créé une fenêtre dans laquelle l'utilisateur saisit sa plongée (il y a donc des NSTextFields et surtout y'a le bouton de validation "Ajouter la plongée" à la fin)
L'action de ce bouton déclenchera ce genre de code :
<br />- (IBAction)addPlongeeAction:(id)sender<br />{<br /> PLONGEE *nouvellePlongee;<br /><br /> // étape 1 : on créé un nouvel objet PLONGEE<br /> nouvellePlongee=[[PLONGEE alloc] init];<br /><br /> // étape 2 : on transfère les valeurs saisies dans la fenêtre vers l'objet PLONGEE<br /> [nouvellePlongee setLieu:[textfield_lieu stringValue]];<br /> [nouvellePlongee setProfondeur:[textfield_profondeur floatValue]];<br /> [nouvellePlongee setProfil:nil];<br /><br /> // étape 3 : quand tout est rempli, on ajoute notre plongée au carnet<br /> [carnetDeFlavouille addPlongee:nouvellePlongee];<br /><br /> // étape 4 : on a plus besoin de la plongée nouvellement créée, alors on la release<br /> [nouvellePlongee release];<br /><br /> // c'est fini !<br />}<br />
Ce type de code est un classique de la programmation objet.
PS pour Oxitan : note que ma variable nouvellePlongee ne m'est utile que dans la méthode ci dessus, alors je la déclare localement à cette méthode (et non dans le .h).
Normalement, tu as créé une fenêtre dans laquelle l'utilisateur saisit sa plongée (il y a donc des NSTextFields et surtout y'a le bouton de validation "Ajouter la plongée" à la fin)
Tout à fait !
Par contre, si je veux insérer une plongée, je créée une nouvelle méthode. Pour cette méthode, j'espère qu'il ne faut pas retaper :
Si tu as tant de variables associées à un textField, pourquoi, à défault de bindings, ne pas mettre des tags à tes texts fields afin de renseignégner tes variables au travers d'une boucle de lecture du tag 0 au tag 63 pour renseigner tes tes variables rangées dans un tableau ordonné de 0 à 63 ?
Au chargement du nib, tu mets une référence aux textFields dans un Array dans la position de leur tag.
Dès qu'on clique sur "valder" (ou qq chose comme ça) tu lance la boucle de 0 à 63 attribuant le contenu du TextField de tag n à la variable en position n (ou avec la @key en position n) .../...
En réalité, c'est plus compliqué que ça. J'ai une soixantaine de variables qui correspondent à des TextField, PopUpButton, Switch, Sliders etc... Donc je pensais qu'on pouvait faire qq chose du style :
Ca y est ! Mon problème d'array qui se duplique n'en est plus un. :brule: Tout est rentré dans l'ordre ce soir et il ne me reste quelques réglages à faire pour retrouver l'état initial 8)
Merci à tous et à Bru en particulier pour son aide
Réponses
La fédé change sans arrêt ses carnets, à force on ne sait plus ce qui est ancien
et
Pour l'enregistrement de mes fichiers...
Dans ma tableView, je voudrais rajouter des unités à mes valeurs, avant j'utilisais :
J'ai essayé ceci :
et j'ai l'erreur suivante : "invalid lvalue assignment"
Tu te compliques bien la vie pour ajouter l'unité "m" à ta valeur avant de l'envoyer à la NSTableView...
.
J'ai énormémént dégraissé mon code
Au fait, si ce n'est pas trop abuser, est-ce que j'ai écrit pour enregistrer mes données c'est OK ?
pour respecter la logique accesseurs.
Juste une question sur les méthodes utilisées par Bru :
Quand on écrit la méthode suivante :
on peut l'appeler par :
Bru a écrit la méthode ci-dessus d'une manière abrégée :
Comment fait-on pour l'appeler ? ???
Mon carnet (tableauDesPlongees) est modifié dans "addPlongee". Il y a un truc que je pige pas
Tu te débrouilles très bien.
Normalement, tu as créé une fenêtre dans laquelle l'utilisateur saisit sa plongée (il y a donc des NSTextFields et surtout y'a le bouton de validation "Ajouter la plongée" à la fin)
L'action de ce bouton déclenchera ce genre de code :
Ce type de code est un classique de la programmation objet.
PS pour Oxitan : note que ma variable nouvellePlongee ne m'est utile que dans la méthode ci dessus, alors je la déclare localement à cette méthode (et non dans le .h).
.
Mort de Rire
Tu prend Bru pour le héro du grand bleu ?
Moi j'aurais plutot pensé à Enzo pour lui, mais t'as p'tet raison il est plein de surprise ce gars
Tout à fait !
Par contre, si je veux insérer une plongée, je créée une nouvelle méthode. Pour cette méthode, j'espère qu'il ne faut pas retaper :
Pour mes 64 variables d'instance
Si tu as tant de variables associées à un textField, pourquoi, à défault de bindings, ne pas mettre des tags à tes texts fields afin de renseignégner tes variables au travers d'une boucle de lecture du tag 0 au tag 63 pour renseigner tes tes variables rangées dans un tableau ordonné de 0 à 63 ?
Au chargement du nib, tu mets une référence aux textFields dans un Array dans la position de leur tag.
Dès qu'on clique sur "valder" (ou qq chose comme ça) tu lance la boucle de 0 à 63 attribuant le contenu du TextField de tag n à la variable en position n (ou avec la @key en position n) .../...
En réalité, c'est plus compliqué que ça. J'ai une soixantaine de variables qui correspondent à des TextField, PopUpButton, Switch, Sliders etc... Donc je pensais qu'on pouvait faire qq chose du style :
Est tu bien sur de ne pas avoir oublié de terminer ta méthode creerPlongee par un return plongeeCree; avec un objet plongeeCree valide ?
Il faudrait écrire
Mon problème d'array qui se duplique n'en est plus un. :brule:
Tout est rentré dans l'ordre ce soir et il ne me reste quelques réglages à faire pour retrouver l'état initial 8)
Merci à tous et à Bru en particulier pour son aide