Reachability status changed

AliAli Membre
juin 2012 modifié dans API UIKit #1
Bonjour tout le monde,

je suis entrain de faire une application dans laquelle je teste le changement de l'état de la connexion internet, j'ai fait presque la même chose que dans l'exemple fournit par Apple
<br />
#import &quot;FindMeAppDelegate.h&quot;<br />
@implementation FindMeAppDelegate<br />
@synthesize window = _window;<br />
- (void) congigureAlert: (Reachability*) curReach<br />
{<br />
	NetworkStatus netStatus = [curReach currentReachabilityStatus];<br />
	BOOL connectionRequired= [curReach connectionRequired];<br />
	NSString* statusString= @&quot;&quot;;<br />
	switch (netStatus)<br />
	{<br />
		case NotReachable:<br />
		{<br />
			statusString = @&quot;Access Not Available&quot;;<br />
			UIAlertView* reachAlert = [[UIAlertView alloc] initWithTitle:@&quot;Internet status&quot;<br />
																 message:statusString<br />
																delegate:self<br />
													   cancelButtonTitle:@&quot;Okay&quot; otherButtonTitles: nil];<br />
			[reachAlert show];<br />
			connectionRequired= NO;<br />
			break;<br />
		}<br />
		  <br />
		case ReachableViaWWAN:<br />
		{<br />
			statusString = @&quot;Reachable WWAN&quot;;<br />
			UIAlertView* reachAlert = [[UIAlertView alloc] initWithTitle:@&quot;Internet status&quot;<br />
																 message:statusString<br />
																delegate:self<br />
													   cancelButtonTitle:@&quot;Okay&quot; otherButtonTitles: nil];<br />
			[reachAlert show];<br />
			break;<br />
		}<br />
		case ReachableViaWiFi:<br />
		{<br />
			statusString= @&quot;Reachable WiFi&quot;;<br />
			UIAlertView* reachAlert = [[UIAlertView alloc] initWithTitle:@&quot;Internet status&quot;<br />
																 message:statusString<br />
																delegate:self<br />
													   cancelButtonTitle:@&quot;Okay&quot; otherButtonTitles: nil];<br />
			[reachAlert show];<br />
			break;<br />
		}<br />
	}<br />
}<br />
- (void) updateInterfaceWithReachability: (Reachability*) curReach<br />
{<br />
if(curReach == internetReach)<br />
{<br />
  [self congigureAlert: curReach];<br />
}<br />
else {<br />
		[self congigureAlert: curReach];<br />
	}<br />
<br />
}<br />
- (void) reachabilityChanged: (NSNotification* )note<br />
{<br />
Reachability* curReach = [note object];<br />
NSParameterAssert([curReach isKindOfClass: [Reachability class]]);<br />
[self updateInterfaceWithReachability: curReach];<br />
}<br />
	  <br />
- (void)applicationDidFinishLaunching:(UIApplication *)application<br />
{<br />
	[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil];<br />
  <br />
	internetReach = [Reachability reachabilityForInternetConnection] ;<br />
[hostReach startNotifier];<br />
[self updateInterfaceWithReachability: internetReach];<br />
  [_window makeKeyAndVisible];<br />
}<br />
@end<br />




Lorsque je lance l'application, une alert indiquant l'état de la connexion s'affiche, mais lorsque l'état de la connexion change rien ne se passe.

Si quelqu'un sait comment résoudre ce problème, merci bien de me le dire





Merci d'avance
Mots clés:

Réponses

  • AlakAlak Membre
    Bonjour,



    J'aimerai savoir quoi quoi cela sert :


    <br />
    - (void) updateInterfaceWithReachability: (Reachability*) curReach<br />
    {<br />
    	    if(curReach == internetReach)<br />
    	    {<br />
    			    [self congigureAlert: curReach];<br />
    	    }<br />
    	   else {<br />
    			    [self congigureAlert: curReach];<br />
    	    }<br />
    }<br />
    




    je voit pas l'intérêt de cette méthode
  • internetReach = [Reachability reachabilityForInternetConnection] ;<br />
    [hostReach startNotifier];
    


    Que je sache, hostReach est nul, donc aucun objet Reachability ne notifie quoi que ce soit.
  • AliAli Membre
    'Baarde' a écrit:

    internetReach = [Reachability reachabilityForInternetConnection] ;<br />
    [hostReach startNotifier];
    


    Que je sache, hostReach est nul, donc aucun objet Reachability ne notifie quoi que ce soit.




    ohhhh, en fait l'erreur était ça, merci Baarde.

    Il fallait que je mette [internetReach startNotifier] à  la place
Connectez-vous ou Inscrivez-vous pour répondre.