Ios 我的可达性通知程序只能被调用一次
因此,我的AppDelegate中有以下内容。Ios 我的可达性通知程序只能被调用一次,ios,swift,reachability,Ios,Swift,Reachability,因此,我的AppDelegate中有以下内容。当我关闭WIFI时,它会通知我,但在初次运行后不会作出反应。我以前就有过这样的工作。我使用的是带有Xcode 8的swift 3以及此版本的swift和Xcode的可达性 我希望能解决这个问题。谢谢 var reachability: Reachability? func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOpt
当我关闭WIFI时,它会通知我,但在初次运行后不会作出反应。
我以前就有过这样的工作。
我使用的是带有Xcode 8的swift 3以及此版本的swift和Xcode的可达性 我希望能解决这个问题。
谢谢
var reachability: Reachability?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
self.reachability = Reachability()
NotificationCenter.default.addObserver(self, selector: #selector(self.reachabilityChanged(_:)), name: ReachabilityChangedNotification, object: reachability)
do {
try self.reachability?.startNotifier()
} catch {
print("Unable to start Notifier")
}
return true
}
func reachabilityChanged(_ note:Notification){
print("is in here")
let reachability = note.object as! Reachability
if reachability.isReachable{
print("is Reachable")
// self.amConnected.text = "YES"
//self.amConnected.fadeOut(duration: 2.0)
}else{
print("IsNotReachable")
//self.amConnected.text = "No"
//self.amConnected.fadeIn(duration: 2.0)
}
print("Changed status")
}
尝试为
addObserver
中的object
参数传递nil
。另外,对于Swift 3,我必须使用self.reachability=reachability.forInternetConnection()
在addObserver
中为对象
参数传递nil
。另外,对于Swift 3,我必须使用self.reachability=reachability来初始化它。对于InternetConnection()
Swift 3中的可达性有一些变化。下载最新的可达性.swift
文件并将其添加到项目中
有关Swift 2.x代码,请检查我的答案 Swift 3.x代码 现在,在您的
AppDelegate
中,获取一个可达性
类对象
private var reachability:Reachability!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//Network Reachability Notification check
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged), name: ReachabilityChangedNotification, object: nil)
self.reachability = Reachability.init()
do {
try self.reachability.startNotifier()
} catch {
}
return true
}
可达性更改
方法定义
//MARK:- Network Check
func reachabilityChanged(notification:Notification) {
let reachability = notification.object as! Reachability
if reachability.isReachable {
if reachability.isReachableViaWiFi {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
} else {
print("Network not reachable")
}
}
每当用户从Wifi切换到蜂窝网络,反之亦然,或当网络连接和断开,反之亦然时,都会调用此命令。在我的情况下,工作正常 有关更多详细信息,请参阅Swift 3中断更改部分 我给你做了一个样品
Swift 3中的可达性有一些变化。下载最新的
可达性.swift
文件并将其添加到项目中
有关Swift 2.x代码,请检查我的答案 Swift 3.x代码 现在,在您的
AppDelegate
中,获取一个可达性
类对象
private var reachability:Reachability!
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
//Network Reachability Notification check
NotificationCenter.default.addObserver(self, selector: #selector(reachabilityChanged), name: ReachabilityChangedNotification, object: nil)
self.reachability = Reachability.init()
do {
try self.reachability.startNotifier()
} catch {
}
return true
}
可达性更改
方法定义
//MARK:- Network Check
func reachabilityChanged(notification:Notification) {
let reachability = notification.object as! Reachability
if reachability.isReachable {
if reachability.isReachableViaWiFi {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
} else {
print("Network not reachable")
}
}
每当用户从Wifi切换到蜂窝网络,反之亦然,或当网络连接和断开,反之亦然时,都会调用此命令。在我的情况下,工作正常 有关更多详细信息,请参阅Swift 3中断更改部分 我给你做了一个样品
检查我的答案检查我的答案不再有forInternetConnection方法。我正在使用Xcode 8,昨天从下载了示例。Xcode实际上提示我使用
进行InternetConnection
,它在Swift 3中运行良好。它实际上只是通过调用系统配置框架。不再有forInternetConnection方法。我使用的是Xcode 8,昨天从下载的示例。Xcode实际上提示我使用进行InternetConnection
,它在Swift 3中运行良好。它实际上只是通过系统配置框架进行调用。进行了更新…并得到了相同的结果…在加载时触发有互联网连接…当我禁用wifi时,它会通知我…然后当我打开wifi时,没有通知…伙计,你的应用程序是否保留在后台?在我的情况下,启用禁用WIFI、禁用internet cellularI将只提供一个指向示例的链接,然后让我知道查看编辑并从链接下载项目,运行它并使用internet进行更改,然后让我知道。将应用程序放在前台如果您将应用程序放在后台,然后禁用wifi,则每当您再次进入应用程序时,它将以可达性更改
选择器方法进行更新…并产生相同的结果…在有互联网连接的情况下加载…当我禁用wifi时,它会通知我…然后当我重新打开它时,没有通知…伙计,你是否将应用程序保留在后台?在我的情况下,启用禁用WIFI、禁用internet cellularI将只提供一个指向示例的链接,然后让我知道查看编辑并从链接下载项目,运行它并使用internet进行更改,然后让我知道。将你的应用程序置于前台如果你将应用程序置于后台,然后禁用wifi,每当你再次进入应用程序时,它将以reachabilityChanged
selector方法出现