[Résolu] Bindings et constantes
Grm
Membre
Bonjour,
ça fait un moment que je me sers de ce forum, pour en apprendre un peu plus sur le dev Mac; ça fait bientôt 6 mois <br />
Donc je me lance enfin.
Dans le cadre de mon application je cherche à effectuer, pour éviter le devoir faire les changements à la main, un bind sous IB entre le titre d'un bouton, et une constante déclarer classiquement (
Mais voilà comme souvent ça marche pas ( erreur :
Vous en pensez quoi ? Et sinon vous avez une meilleure solution ?
ça fait un moment que je me sers de ce forum, pour en apprendre un peu plus sur le dev Mac; ça fait bientôt 6 mois <br />
Donc je me lance enfin.
Dans le cadre de mon application je cherche à effectuer, pour éviter le devoir faire les changements à la main, un bind sous IB entre le titre d'un bouton, et une constante déclarer classiquement (
extern NSString * const BAGBinToDec;
dans le .h et
NSString * const BAGBinToDec = @"Bin -> Décimal";
dans le .m).Mais voilà comme souvent ça marche pas ( erreur :
"this class is not key value coding-compliant for the key BAGDecToBin. "
), je pense que l'erreur vient du fait que je n'ai pas d'accesseur pour ma constante, mais je ne sais pas si je dois en déclarer (dans ce cas ce n'est plus une constante ).Vous en pensez quoi ? Et sinon vous avez une meilleure solution ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Quel est le problème à ce qu'un accesseur renvoie la valeur de ta constante ?
D'autre part, comment comptes tu changer la valeur si tu utilise une constante ?
Effectivement binder une constante ne présente pas d'intérêt ( question de logique, j'aurais du réfléchir deux fois plutôt qu'une ).
Mais je pensais utiliser ceci afin de pouvoir comparer les titres de mes boutons pour déterminer l'action à effectuer suivant le sender ( j'ai une action globale qui va modifier son comportement suivant le bouton pressé ). Mais la comparaison string à string c'est bien mais je modifie le titre d'un de mes boutons je dois aussi modifier dans mon code (je le sais, j'ai passé du temps pour m'apercevoir que mon erreur venait de ça ), donc je pensais à la solution du binding pour éviter ce souci.
Et la solution de faire une action par bouton me déplait car je vais multiplier du code.
Qu'est-ce qui serait le meilleur d'après vous ?
[Edit] : Merci laudema, je viens d'essayer ta proposition, elle marche du tonnerre ! Mais si vous avez de meilleur idées dites le moi.
Note que je compare les pointeurs sur les IBOutlets firstButton et secondButton; je préfère faire ainsi pour attraper les erreurs à la compilation plutôt qu'à l'exécution.
Compare avec cette alternative:
Le tag d'un NSControl peut être fixé sous IB. Cela évite de déclarer des outlets vers tous les boutons, mais impose d'avoir les mêmes constantes dans le XIB et le code.
Je ne connaissais pas l'utilisation des Tags, c'est pratique et en plus ça m'a permis d'alléger mon code (je trouve le switch beaucoup plus léger qu'une suite de if else if).
Je pense que l'on peut mettre ce post en résolu, à moins que ce soit à moi de le faire mais j'ai pas trouvé le bouton (pas taper )