2012-03-16 6 views
0

В моем проекте я использую API API. Я следовал примеру кода, который дал
Reachability API Documentation.kNetworkReachabilityChangedNotification API достижимости

В моем App Делегат я реализованного метода applicationDidFinishLaunching как последуйте,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

    // Observe the kNetworkReachabilityChangedNotification. When that notification is posted, the 
    // method "reachabilityChanged" will be called. 
    [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(reachabilityChanged:) name: kReachabilityChangedNotification object: nil]; 

    hostReach = [[Reachability reachabilityWithHostName: NSLocalizedString(@"SERVICE_HOST_URL", nil)] retain]; 
    [hostReach startNotifier]; 
    [self updateReachabilityStatus:hostReach]; 

    self.rootViewController = [[SearchRootViewController alloc] initWithNibName:@"SearchRootView" bundle:nil]; 
    self.detailViewController = [[SearchDetailViewController alloc] initWithNibName:@"SearchView" bundle:nil]; 

    UINavigationController *rootViewNavigationController = [[UINavigationController alloc] initWithRootViewController:self.rootViewController]; 
    UINavigationController *detailViewnavigationController = [[UINavigationController alloc] initWithRootViewController:self.detailViewController]; 

    self.splitViewController = [[UISplitViewController alloc] init]; 
    self.splitViewController.viewControllers = [NSArray arrayWithObjects:rootViewNavigationController, detailViewnavigationController, nil]; 

    [rootViewNavigationController release]; 
    [detailViewnavigationController release]; 

    self.splitViewController.delegate = self.detailViewController; 

    [self.detailViewController setLeftViewController:self.rootViewController]; 

    [self.window addSubview:[self.splitViewController view]]; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 

Когда это kNetworkReachabilityChangedNotification отправил ?? Я заметил, что он не отправлен, пока не появится представление detailViewController.

Но я хочу узнать статус сети до появления представления. Итак, нужна ваша помощь, чтобы узнать, возможно ли это? Если да, то как ???

Thanx

ответ

2

Это может занять некоторое время, чтобы определить, что для подключения к сетям доступно: вы просите достижимости начать генерировать уведомления, но затем сразу же отображать ваш контроллер представления ... и вы также только создавая свой вид контроллер после, начиная уведомления о достижении, поэтому вполне возможно, что отправлено уведомление до ваш экземпляр контроллера представления.

Лучшим подходом было бы иметь представление холста, которое вы можете использовать, пытаясь установить состояние сети.