Я получаю сообщение об ошибке при попытке использовать Reachablitiy

#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
    }