Vorrei chiamare un metodo quando si avvia la mia app per iOS, ma voglio solo chiamare questo metodo quando c'è una connessione. Ho trovato che in Objective-C è possibile utilizzare Reachable
, ma si scopre che questo metodo non fa parte di Swift.Swift: Come posso avere un listener che segnala quando la connessione viene persa e quando ritorna?
ho trovato un pod chiamato Reachability.swift, e sto utilizzando l'esempio che è stato fornito:
override func viewWillAppear(animated: Bool) {
let reachability: Reachability
do {
reachability = try Reachability.reachabilityForInternetConnection()
} catch {
print("Unable to create Reachability")
return
}
NSNotificationCenter.defaultCenter().addObserver(self,
selector: "reachabilityChanged:",
name: ReachabilityChangedNotification,
object: reachability)
do {
try reachability.startNotifier()
} catch {
print("This is not working.")
return
}
}
func reachabilityChanged(note: NSNotification) {
let reachability = note.object as! Reachability
if reachability.isReachable() {
if reachability.isReachableViaWiFi() {
print("Reachable via WiFi")
} else {
print("Reachable via Cellular")
}
} else {
print("Not reachable")
}
}
Tuttavia, questo non è correttamente funzionante. Funziono solo quando inserisco quel ViewController, ma non quando accendo e spengo il WiFi.
Ehi Ho provato a utilizzarlo per il mio progetto, ma sembra che in swift 3 .reachabilityForInternetConnection() non venga riconosciuto: puoi aiutarmi a risolverlo? – Dakata
La tua soluzione ha funzionato anche per me ... grazie! :) –