2015-09-09 2 views
1

Привет, У меня возникла проблема, когда я меняю свое соединение с Wi-Fi на сотовый, или наоборот, когда приложение падает, вместо того, чтобы показывать контроллер просмотра «Нет соединения», как я его запрограммировал к. Я получаю сообщение об ошибке, как это:Ошибка достижимости при переключении с Wi-Fi на сотовую в Swift

Нагрузочного приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '- [Spotter.AppDelegate checkReachability]: непризнанный селектор направлен например 0x17404b1f0'

I я использую образец Objective-C, предоставленный Apple, и, кстати, с помощью моего кода Swift.

Вот мой код:

@UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate, UITabBarControllerDelegate { 

var window: UIWindow? 
var reachability : Reachability? 



    NSNotificationCenter.defaultCenter().addObserver(self, selector:"checkReachability", name: kReachabilityChangedNotification, object: nil); 

    self.reachability = Reachability.reachabilityForInternetConnection(); 

    self.reachability!.startNotifier(); 

return true 

} 

func checkReachability(notification:NSNotification) 
{ 

    var remoteHostStatus = self.reachability!.currentReachabilityStatus() 

    if (remoteHostStatus.value == NotReachable.value) 

    { 

     let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

     let offlineview = mainStoryboard.instantiateViewControllerWithIdentifier("OfflineViewController") as! OfflineViewController 
     window!.rootViewController = offlineview 
     window!.makeKeyAndVisible() 



    }else{ 

     let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 
     let initialViewController = mainStoryboard.instantiateViewControllerWithIdentifier("TabBar") as! UITabBarController 

     window!.rootViewController = initialViewController 
     window!.makeKeyAndVisible() 


    } 
} 

Может кто-нибудь сказать мне, как я могу решить эту проблему? Спасибо

ответ

2

Ваш селектор не имеет двоеточия в имени. Это должно быть:

NSNotificationCenter.defaultCenter().addObserver(self, selector:"checkReachability:", name: kReachabilityChangedNotification, object: nil); 
+0

Wow thanks! Не могу поверить, что я пропустил это. Знаете ли вы, что в любом случае я мог бы показать, что соединение отсутствует, не перезагружая представление? –