#ios #swift #reachability
#iOS #swift #достижимость
Вопрос:
Я хочу предупредить пользователя, если у него нет подключения к Интернету в моем приложении xcode swift, поэтому я использую Reachablity для этого. Но когда я внедряю свой код в Viewcontroller, я получаю эту ошибку:
Ожидаемое объявление
Я также пытался вставить свой код viewdidload
, но не сработал.
Это код:
if Reachability.checkIntenetRechable() == false {
let alertView = UIAlertCole: "APP_NAME", message: "Please check your internet connection.", preferredStyle: UIAlertControllerStyle.Alert)
//alertView.addAction(UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel, handler: { (action: UIAlertAction ) in }))
alertView.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction ) in
// Put some code for okay button
}))
self.presentViewController(alertView, animated: true, completion: nil)
}
Комментарии:
1. Мы добавили метод checkIntenetRechable() в файл Reachability.swift.
2. @mr-bista Похоже, что наши правки столкнулись или что-то в этом роде, ваше как недействительное мое и вернуло ошибки с опечатками и заглавными буквами. :/ (исправлено)
3. Вы добавили этот checkIntenetRechable() в файл достижимости? Если нет, то добавьте в соответствии с моим сообщением
Ответ №1:
Вы можете неправильно ввести метод. Я вижу, что в нем есть две опечатки.
Разве вы не это имели в виду?
if Reachability.checkInternetReachable() == false { /* */ }
Ожидаемое объявление означает, что вызываемый вами метод не существует.
Комментарии:
1. Если вы считаете, что проблема OP — это простая опечатка, вы должны отметить / проголосовать, чтобы закрыть вопрос как «опечатка или невозможно воспроизвести». Спасибо.
Ответ №2:
Кажется, что метод не существует в файле достижимости, поэтому добавьте этот метод в файл достижимости
class func checkIntenetRechable() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
let defaultRouteReachability = withUnsafePointer(amp;zeroAddress) {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}
var flags = SCNetworkReachabilityFlags()
if !SCNetworkReachabilityGetFlags(defaultRouteReachability!, amp;flags) {
return false
}
let isReachable = (flags.rawValue amp; UInt32(kSCNetworkFlagsReachable)) != 0
let needsConnection = (flags.rawValue amp; UInt32(kSCNetworkFlagsConnectionRequired)) != 0
return (isReachable amp;amp; !needsConnection) ? true : false
}