检查 Internet 连接不起作用
Posted
技术标签:
【中文标题】检查 Internet 连接不起作用【英文标题】:Checking for Internet connection does not work 【发布时间】:2022-01-22 14:54:28 【问题描述】:我正在尝试检查我的应用中的互联网连接,目前,我有以下代码:
private let monitor: NWPathMonitor
monitor.pathUpdateHandler = [weak self] path in
print(path.status)
self?.isConnected = path.status == .satisfied
但是,这不起作用。具体来说,打印不会打印出调试控制台中的值。
你能告诉我我做错了什么吗?
谢谢。
【问题讨论】:
您可以尝试删除=
,例如monitor.pathUpdateHandler ...
这样做后我得到了很多错误......
您必须向我们展示更多代码,以便我们为您提供帮助。 monitor
是某种model
吗? pathUpdateHandler
是 var
还是完成处理程序?等等...换句话说:显示一个最小的可重现示例,***.com/help/minimal-reproducible-example。
我更新了我的问题。请参考。
好的,我明白你在做什么。我假设您在init()
中有:self.monitor = NWPathMonitor()
,对吗?
【参考方案1】:
这是适用于我的(SwiftUI,抱歉)测试代码。 您可能可以为您的目的回收一些代码。
import SwiftUI
import Foundation
import Network
@main
struct TestApp: App
var body: some Scene
WindowGroup
ContentView()
struct ContentView: View
let monitor = NWPathMonitor()
var body: some View
Text("testing")
.onAppear
let queue = DispatchQueue(label: "monitoring")
monitor.start(queue: queue)
monitor.pathUpdateHandler = path in
print(path.status)
if path.status == .satisfied
print("-----> YES connected")
else
print("-----> NOT connected")
也可以使用特定的monitor
,如let monitor = NWPathMonitor(requiredInterfaceType: .wifi)
【讨论】:
以上是关于检查 Internet 连接不起作用的主要内容,如果未能解决你的问题,请参考以下文章
使用 AFNetworking 检查 Internet 连接状态
占位符属性在 Internet Explorer 中不起作用