【发布时间】:2016-10-25 06:33:28
【问题描述】:
我正在开发一个需要互联网连接的 iOS 应用程序。我注意到 FaceBook 应用程序会更新屏幕以在您失去连接时告诉您。当您重新连接时,它还会删除警告。
我的问题是这是怎么发生的?由于视图已经加载,因此必须在连接丢失或恢复时调用某种类型的通知。今晚我从 GitHub 安装了流行的可达性代码,如果我在加载视图后断开连接,我不会收到连接丢失的通知。我确实注册了通知。代码如下。
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
var reachability: Reachability?
//declare this inside of viewWillAppear
do {
reachability = try Reachability.reachabilityForInternetConnection()
} catch {
print("Unable to create Reachability")
return
}
NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(TipViewController.reachabilityChanged(_:)),name: ReachabilityChangedNotification,object: reachability)
do{
try reachability?.startNotifier()
}catch{
print("could not start reachability notifier")
}
}
func reachabilityChanged(note: NSNotification) {
let reachability = note.object as! Reachability
if reachability.isReachable() {
if reachability.isReachableViaWiFi() {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
} else {
print("Network not reachable")
}
}
任何帮助将不胜感激。
【问题讨论】:
-
有什么解决办法吗?网络连接发生变化时是否会触发该方法?
-
我正在试验并解决了它。如果我在全局范围内声明可达性实例,它就起作用了。谢谢。
标签: swift nsnotificationcenter