Я новичок в Swift и пытаюсь предупредить пользователя о повторном подключении к Интернету. Я использую Reachability Эшлимиллс. Я запутался в том, что ставить в моем обработчике оповещений, так как это не работает:
func alertConnect() -> UIViewController{
let reach = Reachability()
let alert = UIAlertController(title: "No Internet", message: "Tap to retry connect internet", preferredStyle: .alert)
alert.addAction(UIAlertAction(title: "Retry", style: .default, handler: {
action in
do {
try reach?.startNotifier()
} catch {
print("Unable to start notifier")
}
}))
alert.addAction(UIAlertAction(title: Constants.cancel, style: .cancel))
return alert
}
Вот мой класс Reachability.class:
class ConnectionManager: NSObject {
var reachability: Reachability!
static let sharedInstance: ConnectionManager = { return ConnectionManager() }()
override init() {
super.init()
reachability = Reachability()!
NotificationCenter.default.addObserver(
self,
selector: #selector(networkStatusChanged(_:)),
name: .reachabilityChanged,
object: reachability
)
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
}
@objc func networkStatusChanged(_ notification: Notification) {
// Do something globally here!
do {
try reachability.startNotifier()
} catch {
print("Unable to start notifier")
}
}
static func stopNotifier() -> Void {
do {
try (ConnectionManager.sharedInstance.reachability).startNotifier()
} catch {
print("Error stopping notifier")
}
}
static func isReachable(completed: @escaping (ConnectionManager) -> Void) {
if (ConnectionManager.sharedInstance.reachability).connection != .none {
completed(ConnectionManager.sharedInstance)
}
}
static func isUnreachable(completed: @escaping (ConnectionManager) -> Void) {
if (ConnectionManager.sharedInstance.reachability).connection == .none {
completed(ConnectionManager.sharedInstance)
}
}
static func isReachableViaWWAN(completed: @escaping (ConnectionManager) -> Void) {
if (ConnectionManager.sharedInstance.reachability).connection == .cellular {
completed(ConnectionManager.sharedInstance)
}
}
static func isReachableViaWiFi(completed: @escaping (ConnectionManager) -> Void) {
if (ConnectionManager.sharedInstance.reachability).connection == .wifi {
completed(ConnectionManager.sharedInstance)
}
} }
Что я должен включить в свой обработчик действий Retry, чтобы позволить пользователю повторно подключиться к Интернету? Спасибо за любую помощь.