Now I got it working. I use a check at start of my application with following code:
if !NetworkCheck().waitForNetwork() {
print("Error: No network available!")
exit(exitCodes.NoNetwork.rawValue)
}
and this is my NetworkCheck class:
import Foundation
import Network
class NetworkCheck {
private let networkMonitor : NWPathMonitor
init() {
self.networkMonitor = NWPathMonitor(requiredInterfaceType: .wiredEthernet)
self.networkMonitor.start(queue: .global())
}
func waitForNetwork(networkTimeout : Double = 30.0) -> Bool {
let networkLookupStart = Date.now
var isConected = false
while abs(networkLookupStart.timeIntervalSinceNow) <= networkTimeout {
networkMonitor.pathUpdateHandler = { path in
if path.status == .satisfied {
isConected = true
}
}
if isConected {
break
}
sleep(1)
}
return isConected
}
deinit {
networkMonitor.cancel()
}
}
Topic:
App & System Services
SubTopic:
Core OS
Tags: