2012-06-24 4 views
1

я создал приложение iPhone, где я хочу, чтобы проверить интернет connectivity.At метода didFinishLaunchingWithOptions методы приложения делегата я написалпроверки Интернет ИОСА приложение

-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; 
    viewController1 = [[ViewController1 alloc] initWithNibName:@"ViewController1" title:firstTabTitleGlobal bundle:nil]; 
    viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" title:secondTabTitleGlobal bundle:nil]; 

    newNavController = [[UINavigationController alloc] initWithRootViewController:viewController1]; 

    userNavController = [[UINavigationController alloc] initWithRootViewController:viewController2]; 

    self.tabBarController = [[[UITabBarController alloc] init] autorelease]; 
    self.tabBarController.viewControllers = [NSArray arrayWithObjects:newNavController,userNavController,nil] 

    Reachability *r = [Reachability reachabilityWithHostName:globalHostName]; 

    NetworkStatus internetStatus = [r currentReachabilityStatus]; 

    if ((internetStatus != ReachableViaWiFi) && (internetStatus != ReachableViaWWAN)) 
    { 
     [self showAlert:globalNetAlertTitle msg:globalNetAlertMsg]; 
     [activityIndicator stopAnimating]; 
    } 
    else 
    { 
     [activityIndicator stopAnimating]; 
     self.window.rootViewController = self.tabBarController; 
     [self.window makeKeyAndVisible]; 
    } 
} 

Моего код хорошо, потому что, когда нет подключения к Интернету, то шоу alert.But проблема в том, что не отображается интерпер, а затем default.png. Когда я снова запускаю приложения, приложения запускаются из показания default.png. И ничего не происходит. Спасибо заранее.

ответ

2

application:didFinishLaunchingWithOptions: будет запускаться только при запуске приложения.

Если вы хотите, чтобы ваше приложение, чтобы проверить наличие свободных мест на последующей активации приложения, попытайтесь поместить свой код в applicationDidBecomeActive:

+2

Я думаю, ваш ответ исправляет проблему, изложенную Аскер - причину до голосования, но с использованием NSNotifications гораздо более практичным и полезным в предоставлении динамических обновлений, вместо того, чтобы вручную проверить интернет подключение. –

1

Что может быть лучше, используя NSNotifications, чтобы динамически сказать вам, если у вас есть подключение. Вы можете сделать это с помощью класса apple под названием «достижимость». После того, как вы включили файл в свой проект, вы можете использовать что-то вроде этого;

//in viewDidOnload  
[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(handleNetworkChange:) 
              name:kReachabilityChangedNotification object:nil]; 
reachability = [[Reachability reachabilityForInternetConnection] retain]; 
[reachability startNotifier]; 
NetworkStatus status = [reachability currentReachabilityStatus]; 

if (status == NotReachable) { 
    //Do something offline 
} else { 
    //Do sometihng on line 
} 

- (void)handleNetworkChange:(NSNotification *)notice{ 
NetworkStatus status = [reachability currentReachabilityStatus]; 
if (status == NotReachable) { 
    //Show offline image 
} else { 
    //Hide offline image 
} 

} 

(это исправленный код из Reachability network change event not firing)

тогда Вы сможете обновить вам изображения, как только любое изменение сети происходит. Однако не забудьте удалить себя из получения уведомлений в dealloc;

[[NSNotificationCenter defaultCenter] removeObserver:self name:kReachabilityChangedNotification object:nil]; 

Если вам нужна дополнительная информация о том, как реализовать это, я буду рад помочь!

Джонатан

Смежные вопросы