G
Size: a a a
Д
🅰Б
Д
🅰Б
IG
Timer.publish(every: 1, on: .main, in: .common)
.autoconnect()
.scan(5) { counter, _ in counter - 1 }
.handleEvents( receiveCompletion: { c in
print("Receive completion", c)
}).
.fullScreenCover(isPresented: $networkMonitor.isDisconnected) {
NetworkStatusView()
}ДЖ
ДЖ
ДЖ
G
.
Foundation
import Network
final class NetworkMonitor: ObservableObject {
let monitor = NWPathMonitor()
let queue = DispatchQueue(label: "Monitor")
@Published var isConnected = true
@Published var isDisconnected = false
init() {
monitor.pathUpdateHandler = { [weak self] path in
DispatchQueue.main.async {
self?.isConnected = path.status == .satisfied ? true : false
self?.isDisconnected = path.status == .satisfied ? false : true
}
}
monitor.start(queue: queue)
}
}G