kNetworkReachabilityChangedNotification of Reachability API - PullRequest
0 голосов
/ 16 марта 2012

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

В моем делегате приложения я реализовал метод 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.

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

спасибо

1 Ответ

2 голосов
/ 16 марта 2012

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...