Я пытаюсь использовать NWPathMonitor в своем приложении, но если я отключу подключение к Интернету, он всегда отвечает подключенным. Любое предложение?
Я пытаюсь использовать NWPathMonitor для обнаружения подключения к Интернету. Моя сетевая установка - это просто маршрутизатор, который подключается к мобильной сети 4G, и Mac, подключенный через Ethernet к одному из LAN-портов маршрутизатора. Мой код следующий:
import Cocoa
import NetworkExtension
@available(macOS 10.14, *)
@objc class ModernInternetMonitor: NSObject {
@objc static let shared: ModernInternetMonitor? = ModernInternetMonitor()
private let monitor = NWPathMonitor()
override private init() {
super.init()
self.startMonitoring()
}
@objc func startMonitoring() {
monitor.pathUpdateHandler = { path in
if path.status == .satisfied {
print("Yay! We have internet!")
} else {
print("Nope! We don't have internet!")
}
}
let queue = DispatchQueue.global(qos: .background)
monitor.start(queue: queue)
}
}
Я пытаюсь зайти в веб-интерфейс роутера и отключить 4G. Тогда я бы надеялся, что NWPathMonitor обнаружит отсутствие подключения к Интернету и запустит закрытие обновления, снова сообщив об отсутствии Интернета, но этого не происходит. Если я перезапускаю приложение и оставляю 4G отключенным, оно всегда сообщает о наличии подключения к Интернету. Единственный способ позволить моему коду обнаруживать отсутствие интернета - это если я перейду в настройки сети и удалю свой интерфейс Ethernet. В этом случае код правильно сообщает об отсутствии подключения. Должно быть, я упускаю что-то важное. Я надеюсь, что кто-нибудь с большим опытом сможет направить меня в правильном направлении. Спасибо за внимание.