Мне трудно использовать Reachability в моем коде. Я хотел бы сделать это очень простым, инициировав наблюдателя при запуске, а затем просто получая уведомления об изменениях. В следующем коде методreachabilityChanged никогда не вызывается. Я пробовал много итераций, но это самая простая версия. Он компилируется и запускается. Пожалуйста, помогите...
****Код AppDelegate.h****
#import <UIKit/UIKit.h>
#ifdef PHONEGAP_FRAMEWORK
#import <PhoneGap/PGViewController.h>
#import <PhoneGap/PGURLProtocol.h>
#import <PhoneGap/Reachability.h>
#else
#import "PGViewController.h"
#import "PGURLProtocol.h"
#import "Reachability.h"
#endif
@interface AppDelegate : NSObject < UIApplicationDelegate, UIWebViewDelegate, PGCommandDelegate> {
NSString* invokeString;
}
@property (nonatomic, copy) NSString* invokeString;
@property (nonatomic, strong) IBOutlet UIWindow* window;
@property (nonatomic, strong) IBOutlet PGViewController* viewController;
@end
****Фрагмент кода AppDelegate.m****
#import "AppDelegate.h"
#import "MainViewController.h"
#ifdef PHONEGAP_FRAMEWORK
#import <PhoneGap/PGPlugin.h>
#import <PhoneGap/PGURLProtocol.h>
#import <PhoneGap/Reachability.h>
#else
#import "PGPlugin.h"
#import "PGURLProtocol.h"
#import "Reachability.h"
#endif
@implementation AppDelegate
@synthesize invokeString, window, viewController;
- (void) reachabilityChanged:(NSNotification *)notice
{
NSLog(@"???????? CODE NEVER GETS HERE ??????????");
Reachability *reach = [notice object];
NSParameterAssert([reach isKindOfClass: [Reachability class]]);
NetworkStatus remoteHostStatus = [reach currentReachabilityStatus];
if(remoteHostStatus == NotReachable) {NSLog(@"**** Not Reachable ****");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"**** wifi ****"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"**** cell ****"); }
}
- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChanged:) name:kReachabilityChangedNotification object:nil];
Reachability *reach = [Reachability reachabilityForInternetConnection];
[reach startNotifier];
NetworkStatus remoteHostStatus = [reach currentReachabilityStatus];
NSLog(@”???? ALWAYS INITS WITH Not Reachable ????”);
if(remoteHostStatus == NotReachable) {NSLog(@"init **** Not Reachable ****");}
else if (remoteHostStatus == ReachableViaWiFi) {NSLog(@"int **** wifi ****"); }
else if (remoteHostStatus == ReachableViaWWAN) {NSLog(@"init **** cell ****"); }
//...
}
@end