Je ne sais pas ce que tu entends par cours accélérés. Je pense justement qu'il ne faut rien accéléré du tout. Il y a tout juste certains automatismes à avoir.
Comme je l'ai dit, normalement avec les apis fournis dans cocoa tout développeur doit pouvoir s"en tirer.
Voyez-vous il y a un principe qui est utilisé pour tout développement dans OS X pour rendre les choses très aisées au programmeur.
En effet Apple a fait de sorte que lorsqu'il existe une démarche commune pour développer un type d'applications, Apple fournit les ressources communes nécessaires. Le développeur ne se préocupant que d'implémenter la partie de son appli qui se différencie de celle des autres. Sachant ce principe, lorsque vous devez résoudre un problème (base de départ d'une appli), partez de l'hypothèse qu'il existe dans les frameworks une classe entière qui résoud votre problème.
Si cette classe n'existe pas, essayez de décomposer votre problème en petits problèmes et posez vous la même question pour chaque petit problème et ainsi de suite.
Vous arriverez fatalement à un moment où vous constaterez 2 choses.
1- il existe bien une classe ou plusieurs classes qui résolvent mon petit problème.
2 - quleques classes permettent de résoudre une partie de mon problème.
dans ce dernier cas je doit en utilisant lcertaines classes et en utilisant le principe d'héritage, de, créer une classe plus rixhe qui résoud la partie manquante et ainsi de suite.
Pour rendre cette démarche plus facile, Apple a classifié les classes de ses frameworks en plusieurs domaines d'utilisation.
D'autre part ne perdez pas de vue que les frameworks renferment un certain nombre de paradigmes (PM ça te dis qque chose?) comme la délégation et la notification qui aident ENORMEMENT.
En effet quand vous aurez l'habitude de développer sous cocoa vous comprendrez que ces notions sont d'une efficacité incroyable qui rendent les choses tellement plus faciles.
Dernièrement je vous ai soumis une petite appli avec comme interface une zone de saisie de texte et deux textfields affichant au fur et à mesure de ma saisie, l'un le nombre de cmots de mon texte et l'autre le dernier mot saisie.
Personne apparemment ne s'y est interessé.
Essayons de le résoudre.
Quel est mon problème? c'est de trouver un objet qui me permet de saisir du texte et qui dispose de méthodes me permettant l'un d"avoir le dernier mot du texte et l'autre le nombre de mots de mon texte.
Dans Application Kit l'objet me permettant de saisir du texte c'est NSTextView. mais ces 2 méthodes n'exitent pas.
Par contre dans la description de la classe NStextView qui hérite de NSText, je m'apperçoit qu'elle envoie à son délégué le message textDidChanged (décrit dans NSText), à chaque fois que je saisis un caractère.
Je peux donc saisir cette occasion pour faire mon traitement de compter les mots et trouver le dernier mot de mon texte.
Dans Interface Buider je crée mon interface avec dans ma fenêtre, en haut une textView et en bas deux textFields avec pour titre le premier le nombre de mots et le second le dernier mot.
Toujours dans IB je crée un controleur CompteurMots avec comme outlets leTexte (textView), nombreMots pour le 1er textField et dernierMot le second.
Je crée mon instance (brique dans la nib). Je fais mes connections outlet avec des traits allant de mon onjet controleur aux 3 outlets.
Ensuite et c'est IMPORTANT, je tire un trait de la textView vers le controlleur et je clique dans l'inspecteur de la textView sur delegate.
je fais donc de mon controlleur le délégué de l'objet leTexte.
Après la sauvegarde je crée les fichiers source de mon appli.
dans CompteurMots (nom de mon controlleur), je vais implémenter 2 méthodes.
- (void)awakeFromNib dans laquelle j'intialise mes fields.
[nombreMots setIntValue:0];
[dernierMot setStringValue;@" "];
avant la clause implémentation, je déclare une variable NSArray *zarray;
La seconde méthode sera
- (void)textDidChanged.
c'est dans cette méthode que je fais faire les traitement spour avoir le nobre de mots et le dernier mot.
Pour cela je dois d'abord traduire mon texte en chaine de caractères (NSString)
En effet je me suis apperçu que la classe NSString possède une méthode décrite dans doc comme suit :
- (NSArray *)componentsSeparatedByString
NSString *)separator
elle me permet de découper ma chaine de caractères en mots dans un objet de type NSArray.
D'autre part deux méthodes de NSArray count et lastObject me donnent le nombre de mots et le dernier mot respectivement. Et le tour est joué.
J'ai donc ;
- (void)textDidChange (NSNotification *)aNotification {
zarray=[[leTexte string] componentsSeparatedByString
" "];
[nombreMots setIntValue;[zarray count]];
[dernierMot setStringValue:[zarray lastObject]];
}
Essayer de le tester.
A°
[03 juillet 2001 : message édité par Manu]