Question sur la syntaxe
CocoaPowr
Membre
Salut les devs ! Je me suis mit au développement Cocoa il y a peu grâce au livre "Programmation Cocoa sous Mac OSX" de Aaron Hillegass. Mais, j'ai un petit soucis concernant son ouvrage. À la page 93 (pour ceux qui ont le livre et qui voudraient jeter un coup d'oeil), aaron nous propose de réaliser une application permettant de compter les caractères qu'on a saisi dans un label. J'ai donc réalisé une jolie interface avec une fenêtre texturée, j'ai crée trois outlets et une fonction, voilà ma classe :
AppController.h :
AppController.m :
Mais bon, voilà , je suis perdu avec les méthodes proposées par Aaron pour arriver à mes fins. Il me propose d'utiliser les méthodes :
- (NSString *)stringValue
- (void)setStringValue:(NSString *)aString
- (int)length
+ (NSString *)stringWithFormat:(NSString *), ...
Mais moi, je ne sais pas comment mettre en pratique ce charabia ? Pourriez vous m'expliquer comment me servir de la doc d'Apple également ? J'ai cherché "stringValue" dans la doc d'Apple ainsi que les autres méthodes dans l'espoir de trouver des exemples de code utilisant ces méthodes, mais en vain. Merci d'avance !
AppController.h :
//<br />// AppController.h<br />// iStringCalc<br /><br />#import <Foundation/Foundation.h><br /><br /><br />@interface AppController : NSObject {<br /> <br /> IBOutlet NSButton *countCaractButton;<br /> IBOutlet NSTextField *textSaisie;<br /> IBOutlet NSTextField *textSortie;<br /><br />}<br /><br />- (IBAction)compterCaracteres:(NSButton *)sender;<br /><br />@end<br />
AppController.m :
//<br />// AppController.m<br />// iStringCalc<br /><br /><br />#import "AppController.h"<br /><br /><br />@implementation AppController<br /><br />- (IBAction)compterCaracteres:(NSButton *)sender {<br /> <br /> NSLog(@"Bouton 'countCaractButton' enclenché"); <br /> <br /> <br />}<br /><br />@end<br />
Mais bon, voilà , je suis perdu avec les méthodes proposées par Aaron pour arriver à mes fins. Il me propose d'utiliser les méthodes :
- (NSString *)stringValue
- (void)setStringValue:(NSString *)aString
- (int)length
+ (NSString *)stringWithFormat:(NSString *), ...
Mais moi, je ne sais pas comment mettre en pratique ce charabia ? Pourriez vous m'expliquer comment me servir de la doc d'Apple également ? J'ai cherché "stringValue" dans la doc d'Apple ainsi que les autres méthodes dans l'espoir de trouver des exemples de code utilisant ces méthodes, mais en vain. Merci d'avance !
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Recherche donc plutôt NSString (méthodes -length et -stringWithFormat:) et NSControl (stringValue et setStringValue:)
Bref, j'aimerai donc savoir comment me servir de la doc d'Apple ? C'est à dire comment savoir de quelle manière appliquer une méthode ? Pourriez vous me dire comment utiliser length avec un exemple de code ?
Dans un fichier (.m ou .h) d'un projet ouvert sous xcode, tu écris le mot pour lequel tu veux une explication, puis en maintenant la touche "alt" enfoncée tu double clic sur le mot en question. L'aide doit s'ouvrir automatiquement et te donner la liste des endroits ou ce mot est référencé.
Si tu utilise la touche "commande" au lieu de "alt", Xcode va ouvrir le fichier ou le mot est défini (très souvent, un fichier .h).
Après, c'est à toi de lire, comprendre ou modifier ta recherche.
[monstring:length];
[monstring length];
monstring.length
etc, ?
En Objective-C la syntaxe c'est clairement
Faut pas chercher plus loin.
Avec l'objective-C 2 certes il y a les properties qui sont utilisés comme ceci :
Mais ça n'est que dans le cas des getter/setter. Lorsque tu veux qu'une variable fasse quelque chose, tu devras utiliser la syntaxe de l'exemple 1.
Pour être plus concret, il est impossible de faire :
Et encore moins
Mais franchement arrête d'utiliser la Doc Apple si tu ne sais pas ça.. et va t'acheter "Cocoa programming for Mac OS X" qui est un super bouquin et qui est un bon point de départ avant de se servir uniquement de la doc Apple.
(C'est pas méchant, c'est juste un bon conseil)
Edit : Tu peux faire "monString.length" vu que c'est de l'Objective-C 2, et tu peux aussi très bien faire [monString length], les deux sont valables.
Vu les questions posées, je pense qu'il faut de toute urgence consulter The Objective-C 2.0 Programming Language avant tout...
1) Le titre de ton post serait à changer, car le problème n'est pas dans l'utilisation de la doc, mais plus sur les bases d'Obj-C. Merci de le faire.
2) Quand tu feras une pause dans le livre de Hillegass, fais donc un tour sur le tutoriel de Tablier sur ce site ...
Bonne Objective-Continuation
Le problème provient de cette ligne de code : phraseFinale = @La chaine %@ contient %d caractères", phraseTapee, nombreDeCaracteres;
Les caractères %@ et %d sont reconnus par NSLog, mais je ne sais pas s'ils sont reconnus par les textfield ? Ce serait sympa de m'aider à corriger cette petite ligne de code. Après, je ne vous embêterai plus, promis !
Merci encore et à la prochaine !
Ow ow... Soucis, j'aimerai pouvoir copier du texte d'ailleurs que du champ de texte de l'appli et pouvoir le coller dans l'appli. Mais malheureusement, le collé ne fonctionne que si le copié a été effectué dans l'appli, comment changer ça ? Merci d'avance les génies !