Reponse requete asynchrone

LEDYLEDY Membre
Bonjour,


je voudrais savoir comment faire pour avoir une réponse direct du serveur me disant que je ne peut pas me connecté au serveur ?


En effet je me sert d'une connexion asynchrone afin de récupérer un .json cela marche très bien, mais seulement je voudrais que lorsque je n'ai pas de connexion empêcher de créer un page pour rien. (Je sais c'est pas très clair je ne suis pas très fort pour les explications)

Exemple :

page1viewcontroller.m dans le viewdidload je fais :

page2viewcontroller * page2  = [[page2viwcontroller alloc] init];

// ici je voudrais empêcher de créer cette page lorsque je n'ai pas de connexion
self.view addSubview:pag2.view;


et dans page2viewcontroller.m dans le init je lance le chargement du .json, seulement le temps que je reçoit la réponse me disant que je ne peut pas me connecté au serveur, je suis déjà  passer dans "self.view addSubview:pag2.view;"


Si quelqu'un à  compris ce que je cherche à  faire veuillez m'aider S.V.P  :(

PS : je débute le développement iphone


Je vous remercie d'avance pour vos réponse

Réponses

  • BunoBuno Membre
    19:47 modifié #2
    Yop,
    Regarde l'exemple de Reachability sur le site Apple
  • LEDYLEDY Membre
    19:47 modifié #3
    Ok je vais aller voir
  • LEDYLEDY Membre
    19:47 modifié #4
    bon j'ai essayer de faire sa :

    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, [URL UTF8String]);

    il me sort :

    Undefined symbols for architecture i386:
      "_SCNetworkReachabilityCreateWithName", referenced from:
          -[Page1ViewController viewDidLoad] in Page1ViewController.o
    ld: symbol(s) not found for architecture i386
    collect2: ld returned 1 exit status

    problème de version ? [/url]
  • BunoBuno Membre
    19:47 modifié #5
    Je pensais plutôt eu re-use de la classe Reachability  :P
    Reachability *r = [Reachability reachabilityWithHostName:@&quot;www.google.com&quot;];<br />NetworkStatus internetStatus = [r currentReachabilityStatus];<br />if (internetStatus != ReachableViaWiFi) NSLog(@&quot;WiFi inactif.&quot;);<br />else NSLog(@&quot;WiFi actif.&quot;);
    

    Un truc du genre, quoi
  • LEDYLEDY Membre
    19:47 modifié #6
    eu... oué, j'aurais préféré faire quelque chose moi même :s, mais merci quand même.

    Je vais voir si je reprend la classe, si quelqu'un a d'autre proposition je suis preneur.
  • zoczoc Membre
    19:47 modifié #7
    PS : je débute le développement iphone

    Donc encore un message mal placé (Ali va encore être pas content  :P )

    Pour le problème de symbole non défini, il suffit de linker avec le framework SystemConfiguration (c'est dans la doc  ;) ).

    Maintenant, pour faire simple, en aucun cas les fonctions de "Reachability" ne permettent de déterminer si une machine distante est joignable ou pas. Les seules réponses que ces fonctions peuvent donner, c'est NON ou PEUT-àŠTRE. Sur la mailing list d'Apple "Cocoa-dev", un ingénieur d'Apple a précisé que le système de reachability se contentait uniquement de vérifier que le premier noeud (en gros le premier routeur) du chemin vers la machine concernée répond.


    En ce qui me concerne, si je devais implémenter ce genre de chose, j'exécuterais systématiquement la requête, MAIS n'afficherais la deuxième page que si le serveur a répondu (connection:didReceiveResponse: du delegate de NSURLConnection) positivement (code de retour 200 à  priori) au lieu de l'afficher au lancement du téléchargement...
  • 19:47 modifié #8
    J'ai déplacé plutôt dans Frameworks communs, étant donné que pour l'instant ça ne traite pas de iOS spécifiquement. SCNetwork étant disponible via SystemConfiguration, qui lui est disponible pour les deux plateformes
  • LEDYLEDY Membre
    19:47 modifié #9
    Ok merci je vais travailler sa
  • LEDYLEDY Membre
    19:47 modifié #10
    j'ai eu comme idée de lancer affichage de ma vue dans une des méthodes de ma classe page2, seulement je ne sais pas si cela est possible ?

    Par exemple :

    dans ma classe chargement je met un délégué qui va faire appel a une méthode de la class page2 quand didfinish est appelé.

    Puis dans ma méthode affichage de la class page2 je voudrais pouvoir faire le fameux addsubview de la classe page1. Je sais qu'avec un délégué sa serait vite fait mais aurait il une autre façon de faire ? j'ai tenté "self.parentviewcontroller.view addSubview:self.view" mais bon rien ne ce passe :s
  • LEDYLEDY Membre
    19:47 modifié #11
    ...
Connectez-vous ou Inscrivez-vous pour répondre.