Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Xcode] ViewController.m est incomplet

    25 janvier 2013 à 18:44:52

    Bonjour,

    j'ai installé xcode, sans trop de problemes pour m'initier a l'objective-C
    en faisant un projet "single view application" je suis le tuto du site :

    en faisant ctrl + clic de mes élément vers viewController.h, il ajoute bien le code
    #import <UIKit/UIKit.h>
     
    @interface ViewController : UIViewController
     
    @property (weak, nonatomic) IBOutlet UILabel *message;
     
    - (IBAction)reagir:(id)sender;
     
    @end


    jusque là tout va bien, mais dans le fichier ViewController.m, j'ai le code

     
    #import "ViewController.h"
     
    @interface ViewController ()
    
    @end
    
    @implementation ViewController
     
     
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
    }
     - (void)didReceiveMemoryWarning
    {
      [super didReceiveMemoryWarning];
      // Release any cached data, images, etc that aren't in use.
    }
     
    - (IBAction)reagir:(id)sender {
    }
    @end
    



    au lieu d'avoir

     
    #import "ViewController.h"
     
    @implementation ViewController
    @synthesize message;
     
    - (void)didReceiveMemoryWarning
    {
      [super didReceiveMemoryWarning];
      // Release any cached data, images, etc that aren't in use.
    }
     
    #pragma mark - View lifecycle
     
    - (void)viewDidLoad
    {
      [super viewDidLoad];
      // Do any additional setup after loading the view, typically from a nib.
    }
     
    - (void)viewDidUnload
    {
      [self setMessage:nil];
      [super viewDidUnload];
      // Release any retained subviews of the main view.
      // e.g. self.myOutlet = nil;
    }
     
    - (void)viewWillAppear:(BOOL)animated
    {
      [super viewWillAppear:animated];
    }
     
    - (void)viewDidAppear:(BOOL)animated
    {
      [super viewDidAppear:animated];
    }
     
    - (void)viewWillDisappear:(BOOL)animated
    {
      [super viewWillDisappear:animated];
    }
     
    - (void)viewDidDisappear:(BOOL)animated
    {
      [super viewDidDisappear:animated];
    }
     
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
      // Return YES for supported orientations
      return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
    }
     
    - (IBAction)reagir:(id)sender {
    }
    @end


    C'est surement un probleme de configuration d'xcode, mais je ne sais pas d'ou ca peut venir...
    • Partager sur Facebook
    • Partager sur Twitter
      25 janvier 2013 à 22:46:50

      Sauf que le tuto du site parle du dev. sur iOS5, et qu'à l'heure présente on dev. sur iOS6. L'implémentation dans ton ViewController.m est tout à fait normale ;)
      • Partager sur Facebook
      • Partager sur Twitter
        25 janvier 2013 à 22:56:31

        euh... ca gène pas pour poursuivre le tutoriel alors ... ? une simplification du code de la part d'apple ?
        • Partager sur Facebook
        • Partager sur Twitter
          25 janvier 2013 à 23:06:04

          Bah y'a des fois où ça marchera pas bien, mais suit le quand même, et si y'a des ptis problèmes tu cherches sur internet ;)

          Oui, on va dire ça, mais certaines d'entre elles existent toujours, elles ne sont juste pas là par défaut ;)

          • Partager sur Facebook
          • Partager sur Twitter
            25 janvier 2013 à 23:11:41

            d'accord, merci beaucoup, je pensais que ca venait d'un truc de compatibilité ou un autre mot effrayant du genre... :)
            • Partager sur Facebook
            • Partager sur Twitter
              26 janvier 2013 à 19:08:15

              Le truc c'est juste que du coup ça ne se fait pas automatiquement. La plupart du temps (pour ne pas dire tout le temps) tu vas devoir ajouter le code manquant.
              • Partager sur Facebook
              • Partager sur Twitter
                27 janvier 2013 à 13:37:44

                AYPEE a écrit:

                Le truc c'est juste que du coup ça ne se fait pas automatiquement. La plupart du temps (pour ne pas dire tout le temps) tu vas devoir ajouter le code manquant.


                Faux les nouvelles versions du SDK allègent le code et pas le contraire.
                • Partager sur Facebook
                • Partager sur Twitter
                  27 janvier 2013 à 13:48:59

                  En réponse à Matruck, après avoir suivi exactement le tuto, j'ai tout de même un problème, comme quoi c'est incompatible

                  2013-01-27 13:40:36.249 premier2[3146:11303] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<ViewController 0x925bed0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key reagir.'
                  *** First throw call stack:
                  (0x1c8c012 0x10c9e7e 0x1d14fb1 0xb76711 0xaf7ec8 0xaf79b7 0xb22428 0x22e0cc 0x10dd663 0x1c8745a 0x22cbcf 0xf1e37 0xf2418 0xf2648 0xf2882 0x41a25 0x41dbf 0x41f55 0x4af67 0xefcc 0xffab 0x21315 0x2224b 0x13cf8 0x1be7df9 0x1be7ad0 0x1c01bf5 0x1c01962 0x1c32bb6 0x1c31f44 0x1c31e1b 0xf7da 0x1165c 0x1d5d 0x1c85)
                  libc++abi.dylib: terminate called throwing an exception
                  (lldb) 

                  C'est la misère, tu as le même problème toi ?

                  • Partager sur Facebook
                  • Partager sur Twitter
                    27 janvier 2013 à 18:45:13

                    Nan mais faut arrêter de se bander les yeux le tuto du SdZ est périmé et ceux depuis au moins Juillet dernier si ce n'est plus.

                    Je vous conseille de faire autrement, comme bien suivre le cours du C et C++ afin de bien comprendre les mécanismes de POO, MVC .. et ensuite d'entreprendre l'Obj-C avec la doc d'Apple qui n'est pas du tout mal foutue (contrairement au Sdz...).

                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 février 2013 à 10:53:12

                      @Holosmos : le fais qu'un tuto soit périmé ne veux pas pour autant dire que SdZ est mal fichu ...

                      Pour ceux qui suive le tuto obsolète, lorsque "message" est en rouge, cliquer simplement sur le rond rouge à gauche de la ligne et xcode vous proposera d'utiliser "_message" à la place, ce qui marche très bien 

                      • Partager sur Facebook
                      • Partager sur Twitter
                        2 février 2013 à 14:10:30

                        Oui le Sdz est mal foutu : laisser un tuto périmé en vente sans rien dire et sans faire aucune mise à jour du contenu c'est honteux.
                        • Partager sur Facebook
                        • Partager sur Twitter

                        [Xcode] ViewController.m est incomplet

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown