swift3的Xcode 8.3.3运行
问题描述:
swift3的Xcode 8.3.3swift3的Xcode 8.3.3运行
应用过程中检查可达性我做了一个按钮,检查可达性,但如何运行每秒的应用程序时做检查可达性。
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
@IBAction func checkAction(_ sender: Any) {
checkReachability()
}
func checkReachability(){
if currentReachabilityStatus == .reachableViaWiFi {
print("User is connected to the internet via wifi.")
}else if currentReachabilityStatus == .reachableViaWWAN{
print("User is connected to the internet via WWAN.")
} else {
print("There is no internet connection")
}
}
}
答
您不需要每秒观察可达性,因为有一个委托方法会在互联网可达性发生变化时被调用。
func reachabilityChanged(notification: Notification) {
let reachability = notification.object as! Reachability
switch reachability.currentReachabilityStatus {
case .notReachable:
debugPrint(“Network became unreachable”)
case .reachableViaWiFi:
debugPrint(“Network reachable through WiFi”)
case .reachableViaWWAN:
debugPrint(“Network reachable through Cellular Data”)
}
}
但你需要最后加入
ReachabilityManager.shared.startMonitoring()
这样ReachabilityManager
将开始监视修改,开始通过添加方法调用startMonitoring()
监控成viewDidLoad()
方法
/// Starts monitoring the network availability status
func startMonitoring() {
NotificationCenter.default.addObserver(self,
selector: #selector(self.reachabilityChanged),
name: ReachabilityChangedNotification,
object: reachability)
do{
try reachability.startNotifier()
} catch {
debugPrint(“Could not start reachability notifier”)
}
}
和。
如果你需要监控整个应用程序的可达性,你可以把这段代码放在AppDelegate中 –
我是否正确? 在AppDelegate.swift中 func reachabilityChanged(通知:通知){ let reachability = notification.object as!可达性 开关reachability.currentReachabilityStatus { 情况.notReachable: debugPrint( “网络变得不可达”) 情况.reachableViaWiFi: debugPrint( “网络可到达的通过WiFi”) 情况.reachableViaWWAN: debugPrint(“网络可到达的通过蜂窝数据“) } } –
在ViewController.swift,倍率FUNC viewDidLoad中(){FUNC startMonitoring(){ NotificationCenter.default.addObserver(个体, 选择器:#selector(self.reachabilityChanged) 名:ReachabilityChangedNotification, 对象:到达能力) 做{ 尝试reachability.startNotifier() } {赶上 debugPrint( “无法启动可达通知”) }} ReachabilityManager.shared.startMonitoring() } –