Obj-c 2
Jekar
Membre
Je debute en Obj-c
j ai un Nstextfield txt1, et je fais ca :
En obj-c 2 ca donne quoi?
Merci
j ai un Nstextfield txt1, et je fais ca :
[txt1 setStringValue:@"toto"] ;
En obj-c 2 ca donne quoi?
Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
NSTextFied hérite de NSControl qui implémente setStringValue:
Ma réponse est "titi" , Jean-Pierre :adios!: :adios!: :kicking: :kicking:<br />
Qu'est-ce qu'on gagne ? Y a un piège ?
Et bienvenu sur Objective-Cocoa
Ben... La même chose qu'en obj-c 1Â :P
alors que
fonctionne tres bien et me met bien le texte toto dans mon Nstextfield...
Alors qd regardant la doc c est bien marque que stringValue sert a recuperer la valeur et pas a la modifier...
Le "set" qu'on place devant le nom de la variable d'instance lorsqu'on fait un modificateur est un standard, donc lorsque tu fais un
Le compilateur va en fait chercher la méthode portant le nom setStringValue pour faire l'affectation, alors que si tu mets : setStringValue, il cherchera setSetStringValue pour respecter le standard...
Le principe des propriétés c'est aussi l'économie des noms, il serait idiot de définir une propriété portant le nom stringValue pour la récupération et une portant le nom setStringValue pour la modification...
Pour compléter, comme setStringValue est une méthode, il faudrait écrire "à l'ancienne" :
[txt1 setStringValue:@toto];
A+
PS : les propriétés sont aussi des méthodes.
De plus pour toute propriété déclarée, il existe les méthodes "à l'ancienne" correspondante, exemple :
Alors que seule la propriété fromValue est définie.
Maintenant, quand on va relire un code, il faudra constamment se demander si on travaille sur un objet ou sur une structure. ::)
Oui, autant la dot-syntax paraà®t fructueuse pour les bindings ou KVC, (forKeyPath par exemple) , autant j'attends de rencontrer des situations intéressantes dans du code standard.
Donc on peut faire un peu tout et n'importe quoi.
Vous confirmez ? ???
(je n'utilise pas encore Xcode 3 et Leopard, trop jeunes pour du dev industriel).
Je parle de l'utilisation du point dans l'utilisation de valueForKeyPath:
exemple :
[dico valueForKeyPath:@maCave.@sum.number"] )