Проверка интернет соединения в Swift (check internet swift)

Сейчас в современных приложениях требуется интернет, здесь готовый туториал как сделать такую проверку

import Foundation

import SystemConfiguration

public class TestInternetConnection {

class func connectedToNetwork() -> Bool {

var zeroAddress = sockaddr_in()

zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))

zeroAddress.sin_family = sa_family_t(AF_INET)

guard let defaultRouteReachability = withUnsafePointer(&zeroAddress, {

SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))

}) else {

return false

}

var flags : SCNetworkReachabilityFlags = []

if SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) == 0 {

return false

}

let isReachable = flags.contains(.Reachable)

let needsConnection = flags.contains(.ConnectionRequired)

return (isReachable && !needsConnection)

}

}

Чтобы вызвать проверку достаточно в нужном нам месте сделать экземпляр класса, но перед этим давайте сделаем функцию отображения алерта, того же, что мы использовали в похожем туториале по проверке интернет соединения
// Показ алерта по отсутствию интернет соединения

func alertInternetConnection() -> UIAlertView {

let title: String? = «Нет соединения с интернетом»

let message: String? = «Проверьте, что имеется соединение с интернетом.»

let alert = UIAlertView(title: title, message: message, delegate: nil, cancelButtonTitle: «OK»)

return alert

}

И вызовем ее вместе с проверкой.

if TestInternetConnection.connectedToNetwork() == true {

print(«Internet connection OK»)
} else {

print(«Internet connection FAILED»)

// покажем алерт отсутствия соединения

alertInternetConnection.show()

}