2010-11-26 15 views
1

Dans mon application iPhone, je dois détecter la disponibilité de la connexion Internet.L'application iPhone se bloque lors de la vérification de la connectivité Internet

Je suis référentes certains fichiers du projet « joignabilité » d'Apple.

Link est donnée ci-dessous:

http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html

créer un nouveau projet et mettre en œuvre le code ci-dessous dans viewWillAppear mais les application se bloque.

J'inclus le Reachability.h, Reachability.m du projet de démonstration d'Apple.

J'ai également inclus SystemConfiguration Framework. L'application fonctionne correctement lorsque Internet fonctionne. Mais l'application se bloque lorsque Internet ne fonctionne pas.

Même j'ai vérifié la console mais il n'y a aucune notification ou erreur montrée dans la console.

Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"]; 

NetworkStatus internetStatus = [r currentReachabilityStatus]; 
if ((internetStatus == ReachableViaWiFi) || (internetStatus == ReachableViaWWAN)) 
{ 
    UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"Internet Connection" message:@"Available" delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [myAlert show]; 
    [myAlert release]; 
    } 
else 
{ 
    UIAlertView *myAlert = [[UIAlertView alloc] initWithTitle:@"No Internet Connection" message:@"This app require an internet connection via WiFi or cellular network to work." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles:nil]; 
    [myAlert show]; 
    [myAlert release]; 
    } 

Quelle pourrait être la raison de l'accident?

Que dois-je faire?

Merci!

+0

avez-vous vérifié la console, pour vérifier la raison de l'accident? Rien – Swastik

+0

est montré dans la console. –

Répondre

1

Ici, il peut être le cas que votre code ne fonctionne pas sur simulateur à cause de temps. Mais essayez de l'exécuter sur l'appareil. essayez aussi le débogage du code comme dit à juste titre @ Greg. ce crédit doit aller à @ Greg. Espérons que cela aide. Laissez-moi savoir si cela fonctionne.

+0

Merci beaucoup Julia pour votre contribution. Il semble que ce soit un problème de délai d'attente sur le simulateur. C'était une bonne observation. :) –

4

Vous surdiffusez les alertes. D'abord, vous faites autorelease et ensuite release, ce qui est trop. Il suffit de supprimer les deux [myAlert release]; et cela devrait fonctionner.

+0

J'ai essayé, mais ne fonctionne toujours pas. il reste crashes.What dois-je faire –

+0

? Je l'ai retiré cela, mais encore il se bloque. –

0

Votre problème est ailleurs dans votre code, comme le code fourni avec la copie joignabilité. [Mh] dans un nouveau projet Xcode semble fonctionner sans se briser. Lorsque votre application tombe en panne, il faut avoir un certain type d'informations enregistrées dans la console. S'il n'y a vraiment rien, définir un point d'arrêt dans vos méthodes « démarrage » (viewWillLoad, viewDidLoad, trucs AppDelegate et étape par ligne par ligne jusqu'à ce que vous attrapez le problème.

+0

Salut Greg , J'essaie Bien que je teste sur un simulateur avec le débogage, il fonctionne bien, mais dès que j'enlève les points d'arrêt et que je cours normalement, il se bloque à nouveau. Cela semble donc être un problème d'expiration. Comme Julia a dit que ça a bien fonctionné quand j'ai testé le même code sur l'appareil, ça ressemble à un problème de temps mort sur simulateur. Merci pour votre aide de toute façon !! :) :) –