2011-07-07 3 views
1

Je développe une application qui est un client et communique avec un service Web. Je vérifie la connexion Internet avec la classe Reachability. Si c'est disponible, j'ai mis un bool comme OUI, son NON par défaut. Dans la méthode didFinishLaunchingWithOptions de mon délégué d'application, j'attrape un objet singleton et l'ajoute pour observer les changements d'état du réseau afin qu'il puisse rapidement convertir booléen en OUI.Architecture d'application iOS pour une application de service Web

Quand mon premier viewDidLoad, j'essaie de getToken du service Web afin que je vérifie si internetConnection est avaliable et il revient toujours non parce que mon objet reçoit une notification après avoir essayé d'obtenir un jeton. Je ne pense pas que ce soit une bonne idée d'utiliser un artiste retardé, alors comment puis-je gérer cette situation. Merci à l'avance ..

Répondre

1

Dans votre cas, j'ai utilisé la bibliothèque ASIHTTPRequest pour vérifier si la demande atteignait le serveur ou non. Le ASIHTTPRequest offre beaucoup de méthodes dont celui-ci:

-(void)requestFinished:(ASIHTTPRequest *)request 

Pour tester la connexion, vous pouvez faire quelque chose comme ceci:

-(void)requestFinished:(ASIHTTPRequest *)request{ 


if(request.responseStatusCode==200) 
    { 
      //successfull connection, do what you need 
     } 
else { 
     //failed request sent, display the correspondant error 

     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Your app name" 
                 message:@"Unexpected error" 
                 delegate:nil 
               cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [alert show]; 
     [alert release]; 
    } 


} 
+0

Hmm merci, il semble que cette bibliothèque utilise joignabilité aussi et fais des choses que j'essaie de faire. – Haqn

+0

@Haqn, Malloc, Quel modèle de design dois-je utiliser pour séparer les classes, qui traitera des services, d'une logique métier? Lien vers un diagramme serait parfait. – surlac

+1

@surlac, désolé surlac sa va être une réponse tardive, j'étais absent pendant un moment. J'ai utilisé la bibliothèque ASIHTTPRequest et créé un singleton pour gérer toutes les connexions. Si vous utilisez cette bibliothèque, vous n'avez pas besoin de penser à séparer les classes pour les choses du réseau (bien sûr cela dépend de vos besoins). Il vous suffit de créer des classes modales pour vos données et de les voir par vos viewControllers! :) – Haqn

Questions connexes