Я рекомендую проверить подключение к сети, прежде чем делать какие-либо запросы к сети.Таким образом, вы не зависите от капризов той библиотеки, которую используете для общения с сетью.
Я использую Достижимость , чтобы проверить сетевое соединение перед выполнением каких-либо запросов (которыеЗатем я выполняю с использованием Alamofire).Ниже приведен пример функции для проверки сети:
import Reachability
...
func networkIsReachable(shouldShowAlert: Bool) -> Bool {
if let reachability: Reachability = Reachability(), reachability.connection != .none {
return true
}
if shouldShowAlert {
let alertController = UIAlertController(title: "Error", message: "No internet connection.", preferredStyle: .alert)
alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: nil))
present(alertController, animated: true, completion: nil)
}
return false
}
Поскольку я использую эту функцию во всей своей кодовой базе, я даже переместил ее в расширение, чтобы не нарушать принцип DRY .
Обновление вашего кода для использования этой функции будет выглядеть так:
func checkUserCredentials(phoneNumber: String, FBId: String, Token: String) {
guard let networkIsReachable(shouldShowAlert: true) else {
// network is not reachable, and user has been shown an error message
return
}
// now perform network request
// ...
}