Partage
  • Partager sur Facebook
  • Partager sur Twitter

[IOS] Probleme sur @interface (debutant)

Sujet résolu
    10 octobre 2012 à 14:12:24

    Bonjour,
    Voila je suis un débutant en développement IOS (pour ipad). Je sais que cette question va être très simple à résoudre pour une personne qui s'y connait un minimum ^^'.

    J'ai une erreur au niveau de la compilation de mon projet, est ce que quelqu'un pourrait m'aider à la résoudre en m'expliquant ou ca bloque ?

    Voici le .h:
    #import <UIKit/UIKit.h>
    #import <Foundation/Foundation.h>
    #import "Reachability/Classes/Reachability.h"
    
    @interface Connexioncontroller: UIViewController
    {
        Reachability *reachability;
    }
    
    @property(nonatomic,retain) UIWebView *Reachability;
    
    - (void) handleNetworkChange:(NSNotification *)notice;
    
    @end
    



    Voici le .m:
    #import "Connexioncontroller.h"
    
    @implementation Connexioncontroller
    @synthesize Reachability;
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        [[NSNotificationCenter defaultCenter] addObserver:self selector:[self handleNetworkChange] name:kReachabilityChangedNotification object:nil];
    //error: No visible @interface for 'connexioncontroller' declares the selector 'handleNetworkchange'
    
        reachability = [Reachability reachabilityForInternetConnection];
        [reachability startNotifier];
        NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
        
        if(remoteHostStatus == NotReachable)
        {
            NSLog(@"no");
        }
        else if (remoteHostStatus == ReachableViaWiFi)
        {
            NSLog(@"wifi");
        }
        else if (remoteHostStatus == ReachableViaWWAN)
        {
            NSLog(@"cell");
        }
    }
    
    - (void)viewDidUnload
    {
        [super viewDidUnload];
    }
    
    - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
    {
        return YES;
    }
    
    - (void) handleNetworkChange:(NSNotification *)notice
    {
        NetworkStatus remoteHostStatus = [reachability currentReachabilityStatus];
        if(remoteHostStatus == NotReachable)
        {
            NSLog(@"no");
        }
        else if (remoteHostStatus == ReachableViaWiFi)
        {
            NSLog(@"wifi");
        }
        else if (remoteHostStatus == ReachableViaWWAN)
        {
            NSLog(@"cell");
        }
    }
    
    @end
    



    Je suis debutant soyez indulgent.

    Merci d'avance.
    • Partager sur Facebook
    • Partager sur Twitter
      10 octobre 2012 à 14:54:10

      Remplace cette ligne :

      [[NSNotificationCenter defaultCenter] addObserver:self selector:[self handleNetworkChange] name:kReachabilityChangedNotification object:nil];
      


      Par celle ci :

      [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleNetworkChange:) name:kReachabilityChangedNotification object:nil];
      

      • Partager sur Facebook
      • Partager sur Twitter
        10 octobre 2012 à 15:23:05

        Merci beaucoup :)

        je n'ai plus aucune erreur dans mon code :D

        Mais maintenant c'est dans les class Reachability (que j'ai téléchargé sur le site d'apple et importer dans mon projet) qu'il y a un problème.

        quelqu'un saurait il pourquoi cette erreur se produit elle:
        Image utilisateur

        PS: Euh dois je importer aussi le ReachabilityAppDelegate.m (et le ReachabilityAppDelegate.h) dans mon projet ?
        • Partager sur Facebook
        • Partager sur Twitter
          10 octobre 2012 à 17:17:50

          Je crois que tu n'as pas besoin du "retain".

          Essaies:
          wifiReach = [Reachability reachabilityForInternetConnection];
          
          • Partager sur Facebook
          • Partager sur Twitter
          Logic gets you from A to B. Imagination will take you everywhere. A. Einstein
            10 octobre 2012 à 17:41:22

            Effectivement tu as créé un projet utilisant ARC (automatic reference counting), pour faire court ça te permet de ne pas avoir à gérer les allocations/desallocations des objets en mémoire. Cela implique que c'est le compilateur qui se charge tout seul de mettre des retain et des release aux endroits adéquats.

            ARC est véritablement un gain de temps, cependant il faut que tu sache qu'en utilisant ARC ton application ne sera pas utilisable sur les iPhones possédant iOS 4 ou inférieur.
            • Partager sur Facebook
            • Partager sur Twitter

            [IOS] Probleme sur @interface (debutant)

            × 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