Création de code à  la volé

Bonsoir à  tous, je viens à  vous car j'ai une petite question qui me trotte. Voilà , j'ai commencé à  développer une application de type webApp. J'utilise un webService afin de récupérer des données issues de mon serveur. Jusque là  tout va bien. Je me demandais juste si je pouvais créer du code à  la volé ?



Je m'explique. Je récupère un nom de bouton par exemple. Si mon nom est valide je créer le bouton avec ce nom sinon je ne fait rien. Dans le cas où je récupère bien un nom pour mon bouton j'aimerais créer une action pour ce bouton. Je ne sais pas si cela est possible, car en plus de cela mes actions seraient différentes en fonction du nom de mon bouton.



Merci de votre réponse. Bien cordialement Walslayer.



Ps : Je ne penses pas que cela soit possible pour des questions de runTime (je ne sais pas si je suis dans le bon). Car il faut allouer en mémoire les objets dont on utilise.

Réponses

  • 1/ Je ne suis pas sûr que tu sois dans la bonne section ; tu risques de ne pas avoir beaucoup de réponses.



    2/ Créer un bouton ce n'est pas créer du code, c'est juste créer une instance de classe UIButton (par exemple). Oui c'est possible, c'est ce que fait une application iOS standard, lorsqu'elle est lancée elle va créer toutes les instances des objets graphiques selon la description qui en est faite dans le fichier XIB.



    3/ Pour répondre à  ta question, ce n'est pas possible (simplement) de créer du code Objective-C à  la volée. Il est possible de créer du code Javascript par exemple, puisque ce langage est interprété par le navigateur, on peut concevoir qu'un serveur Web fabrique du code JavaScript qui sera exécuté sur un navigateur.

    Pour simplifier (et c'est vraiment une vision simplificatrice) :

    - il n'est pas possible de générer à  la volée du code dans un langage compilé (tel qu'Objective-C, C, C++, ...)

    - il est possible de générer à  la volée du code dans un langage interprété (JavaScript, PHP, Ruby, ...)
Connectez-vous ou Inscrivez-vous pour répondre.