Aide débutant

Bonjour,


 


tout d'abord merci de ne pas m'étrangler après avoir lu ce message


 


Je cherche de l'aide pour comprendre la programmation pour iPhone. Je suis débutant et mon domaine de prédilection est la chimie pas l'informatique. Bien que débutant, j'ai déjà  programmé un visualisateur de molécules relativement complexe avec VBA (sur Excel (windows)), je "connais" donc les concepts des programmes en console et ceux en fenêtre, les variables, etc. Même si la programmation en objective-C est différente de VBA, j'ai relativement vite compris la logique.


 


J'essaie maintenant de suivre le tutoriel ci-dessous d'openclassrooms (ancien site du zéro) afin d'apprendre en même temps Xcode et le langage de programmation de l'iPhone (j'ai fait mon app en Objective-C (des remarques à  ce propos?)):


 


http://openclassrooms.com/courses/creez-des-applications-pour-iphone-ipad-et-ipod-touch/un-premier-developpement


 


Il s'agit de la 2ème partie du tutoriel (juste après savoir installé Xcode) et le but est de créer une app simple pour commencer. !!! Il est précisé que le tutoriel est pour Xcode 4 alors que j'ai essayé de le suivre pour Xcode 6.1


 


Si quelqu'un y comprend quelque chose (voir ce que j'ai fait en pièce jointe), merci de me donner des astuces, de m'aider à  comprendre ce que j'ai fait de faux et ce qui peut différer entre Xcode 4 et Xcode 6.1 afin que cette petite application fonctionne...


 


Si vous avez des tutos à  me suggérer, je suis toujours preneur... Merci


Réponses

  • LouLou Membre
    novembre 2014 modifié #2

    Je pense qu'il vaudrait mieux donner un aperçu du code, les erreurs que tu obtiens, ce que tu voulais obtenir, etc. tu auras sûrement plus de réponses  ;)


  • djmagnendjmagnen Membre
    novembre 2014 modifié #3


    Je pense qu'il vaudrait mieux donner un aperçu du code, les erreurs que tu obtiens, ce que tu voulais obtenir, etc. tu auras sûrement plus de réponses  ;)




    Merci de ta réponse... L'aperçu du code se trouve dans le tutoriel (j'ai mis le lien). En gros, l'interface utilisateur, c'est un "label" un "bouton" et quand on clique sur le bouton, le label est censé afficher un autre message. C'est tout... Il s'agit d'un programme de type "application view" en objective-c


     


    Concernant les erreurs, je pense qu'il s'agit notamment d'une erreur de codage dans la ligne de code pour changer le texte du "label". Le programme me dit aussi qu'il y a deux "semantic issue" et une "parse issue" que je ne sais pas résoudre... C'est lié à  la méthode d'après ce qui est écrit... Le programme étant très léger, je vous encourage à  le télécharger pour vous rendre compte par vous même...


     


    Il y a aussi autre chose que je n'ai pas bien compris... A plusieurs endroits, il est écrit "viewcontroller.h" et viewcontroller.m" Ne sachant pas exactement à  quoi j'ai affaire, il est probable que j'aie mis du code à  des endroits inutiles et aussi avoir omis d'en mettre au bon endroit... C'est pour cela que j'ai mis tout le projet en pièce jointe et pas simplement mis des lignes de codes sur le forum. J'aimerais que qqun y jette un coup d'oeil et m'aide par ses commentaires à  mieux comprendre xcode. Merci 


  • Hello.



    Par rapport à  ta question sur la différence entre "viewcontroller.h" et viewcontroller.m".
    Le "viewcontroller.h" = fichier entête et "viewcontroller.m" = fichier d'implémentation.

    Le fichier .h contient les variables d'instance et la liste des méthodes  (entre @interface et @end).

    Le fichier .m contient le "mécanisme" des méthodes (entre @implementation et @end). En d'autre terme c'est dans ce fichier que tu définit le rôle des méthodes.


    (Même principe pour les classes)


     

    Dans ton projet l'implémentation de ta méthode dans le .m, n'était pas dans la zone @implémentation mais dans la zone @interface ;-).



    Si tu corriges ainsi ton viewController.m :


    //


    //  ViewController.m


    //  myApp


     


     


    #import "ViewController.h"


     


    @interface ViewController ()


    @property (weak, nonatomic) IBOutlet UILabel *message;


     


    - (IBAction)reagir:(id)sender {


        NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];


        _message.text = lemessage;


     


    }


     


    @end


     


    @implementation ViewController


     


    - (void)viewDidLoad {


        [super viewDidLoad];


        // Do any additional setup after loading the view, typically from a nib.


    }


     


    - (void)didReceiveMemoryWarning {


        [super didReceiveMemoryWarning];


        // Dispose of any resources that can be recreated.


    }


     


    - (IBAction)reagir:(id)sender {


        NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];


        _message.text = lemessage;


    }


    @end


     

    Ton application tourne sans soucis.

     

    Bref tu étais vraiment très très près de ton résultat ;-)))

     

  • acrobatacrobat Membre
    novembre 2014 modifié #5

    Sinon, je ne sais pas si on peut faire ce type de pub ici .


    Merci au modérateur de m'indiquer si je dois supprimer ce post ;-).


     


    Il y a des tutos plus à  jour ici :


    http://pagesperso-systeme.lip6.fr/Fabrice.Kordon/NI438-2013/


    http://pagesperso-systeme.lip6.fr/Fabrice.Kordon/5I452-2014/


     


    Tu peux également regarder si une nouvelle session arrive sur FUN ( https://www.france-universite-numerique-mooc.fr) si tu vises une "certification".


  • Bonjour,


     


    En ce qui concerne FUN, il ne s'agit pas d'une certification, mais d'une attestation. Une nouvelle session devrait avoir lieu, mais, certainement pas avant l'année prochaine. En attendant, il est possible de suivre les podcasts de Fabrice KORDON https://itunes.apple.com/fr/itunes-u/programmation-sur-plateformes/id919453516?mt=10


     


    Bon courage,


     


    Brut de Pomme


  • Joanna CarterJoanna Carter Membre, Modérateur
    novembre 2014 modifié #7


     


    //


    //  ViewController.m


    //  myApp


     


    #import "ViewController.h"


     


    @interface ViewController ()


    @property (weak, nonatomic) IBOutlet UILabel *message;


     


    - (IBAction)reagir:(id)sender {


        NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];


        _message.text = lemessage;


     


    }


     


    @end


     


    @implementation ViewController


     


    - (void)viewDidLoad {


        [super viewDidLoad];


        // Do any additional setup after loading the view, typically from a nib.


    }


     


    - (void)didReceiveMemoryWarning {


        [super didReceiveMemoryWarning];


        // Dispose of any resources that can be recreated.


    }


     


    - (IBAction)reagir:(id)sender {


        NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];


        _message.text = lemessage;


    }


    @end




     


    @acrobat - s'il te plait utiliser les balises code (regardes l'image ci-jointe) pour enfermer les extraits comme ci :



    //
    // ViewController.m
    // myApp


    #import "ViewController.h"

    @interface ViewController ()

    @property (weak, nonatomic) IBOutlet UILabel *message;

    - (IBAction)reagir:(id)sender;

    // supprimer le suivant
    // {
    // NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];
    // _message.text = lemessage;
    //
    //}

    @end

    @implementation ViewController

    - (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    }

    - (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

    - (IBAction)reagir:(id)sender {
    NSString *lemessage = [[NSString alloc] initWithFormat:@Bravo !];
    _message.text = lemessage;
    }
    @end

    Oui, on n'aura plus les couleurs mais ça convient plus lorsqu'on veut citer les messages qui contiennent le code  :)


  • Joanna CarterJoanna Carter Membre, Modérateur


    Bonjour,


     


    En ce qui concerne FUN, il ne s'agit pas d'une certification, mais d'une attestation. Une nouvelle session devrait avoir lieu, mais, certainement pas avant l'année prochaine. En attendant, il est possible de suivre les podcasts de Fabrice KORDON https://itunes.apple.com/fr/itunes-u/programmation-sur-plateformes/id919453516?mt=10


     


    Bon courage,


     


    Brut de Pomme




     


    Moi, je trouve les podcasts de Fabrice trop bouleversants, notamment quand il parle des techniques "démodées" qui ne sont plus conseillées dans les docs d'Apple.

  • C'est noté pour la balise 


Connectez-vous ou Inscrivez-vous pour répondre.