début de programmation objectiive-c et Xcode

claw59

Membre actif
14 Décembre 2005
119
1
Dunkerque
bonjour,

je viens d'acquérir un mac mini depuis 3 mois et j'ai commencé à étudier l'objective-c et Xcode. je trouve Xcode très puissant et rapide pour concevoir des applications au détriment d'une certaine complexité d'utilisation. cela dit, j'ai déjà bien assimilé différentes considérations propre au fonctionnement d' Xcode. ainsi on peut distinguer des objets à vocation model pour la gestion d'algorithme et des classe view pour la gestion des controles graphiques. la technique des liaisons binding consiste à définir des contrôles intermédiaires consistant à gérer les données selon un fonctionnement de synchronisation propre à chaque contrôle. Comme une boîte de dialogue peut posséder différentes sections synchronisées de façon différentes (une section dataview, une section image fichier, une section option utilisateur, etc...) on utilisera selon le choix un tableau de controller ou un arbre de controller.

ça ca va je commence à bien piger le truc et la philosohie de Xcode: la programmation dynamique

d'une manière un peu plus prosaîque, voici mon problème actuelle.

lorsque j'instancie un controller contenant toutes les actions et les outllets que j'ai besoin, ensuite il faut créer le fichier sous l'onglet classe.

PROBLÈME: si j'ai besoin de rajouter ou d'enlever des actions une fois que les fichiers ont été créés, comment faire pour que IB puissse tenir compte des modifications (nouvel action, nouvel outlet rajoutés dans les fichiers controlers ???).

problème existentielle quant tu nous tiens.

sinon à part çà, ce que je trouve de génial avec la programmation cocoa, c'est la notion de 'Action'.
avant j'avais un PC, je me suis mis à étudier des structures de données de manière basique avec 'Visual studio'. j'ai remarqué que si vous aviez 10 boutons digitaux, il faut implémenter 10 fonctions différentes avec le même type de message 'click'. tandis qu'avec Xcode, si vous avez 10 boutons digitaux vous avez UNE SEULE ACTION à implémenter et d'effectuer 10 connexions sous IB.

merci pour votre aide.
 
Ce que tu vois dans le premier onglet d'IB sont les objets instanciés. Hors quand on rajoute une action ou une outlet, c'est bien la classe qui en profite, et c'est donc la classe qu'il faut mettre à jour.

Pour cela, trouve ta classe (dans l'onglet Classes), dans je sais plus quel menu fais "Read Files for class XXX", rajoute les actions et outlets, puis regénère le .h correspondant à ta classe. Il te sera nécessaire de fusionner l'ancien fichier et le nouveau, mais comme tu as fait Read Files, tu peux prendre le second fichier.

Tu devrais t'en sortir...
 
j'utilise Xcode 2.2, j'ai effectué les modifications de ma classe 'controllerCalculate.h" et j'utilise son instance sous IB par la méthode 'read controllerCalculate.h' comme tu me l'as dit et une boîte de dialogue apparaît: 'Merge, cancel, replace modification ?" cela fonctionne parfaitement.

merci beaucoup pour ton aide
 
Une dernière petite question: dans la documentation d'apple, il est conseillé de suivre l'évolution des classes d'algorithme en effectuant des tests de performance régulièrement en se basant sur des métriques personnalisées. Je ne désire pas encombrer mon code source de méthode qui encadre des méthodes à des fins de débogage dans le but de conserver un maximum de clarté, je suppose alors qu'il me faudrait utiliser des outils comme ObjectAlloc. Mon problème c'est que je ne sais pas encorre comment faire pour relier ce genre d'outil avec une application 'Cocoa' sans obtenir quantité d'informations qui pour l'instant ne m'intéresse pas ( en particulier une position sur du code source en assembleur) .

quelqu'un pourrait-il m'aider à trouver un lien vers de la documentation qui précise comment définir des métriques personnalisés d'étude de performance de code ?? exemple de critères personnalisé: temps processeur,estimation nombre d'éléments calculable par liste, Flag personnalisé etc..

merci beaucoup.
 
il est également possible de glisser le fichier .h de XCode vers IB.