2016-01-25 1 views
-1

У меня возникают ошибки со следующим кодом, как я могу это исправить?Swift 2.1 - вызов может выполняться, но он не помечен как «try», и ошибка не обрабатывается

«Вызов может бросить, но он не отмечен„попробовать“, и ошибка не обрабатывается»

let reachability = Reachability.reachabilityForInternetConnection() // - Error Here 

     reachability.whenReachable = { reachability in 
      if reachability.isReachableViaWiFi() { 
       let alertController = UIAlertController(title: "Alert", message: "Reachable via WiFi", preferredStyle: .Alert) 

       let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil) 
       alertController.addAction(defaultAction) 

       self.presentViewController(alertController, animated: true, completion: nil) 

      } 
      else { 
       let alertController = UIAlertController(title: "Alert", message: "Reachable via Cellular", preferredStyle: .Alert) 

       let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil) 
       alertController.addAction(defaultAction) 

       self.presentViewController(alertController, animated: true, completion: nil) 
      } 
     } 
     reachability.whenUnreachable = { reachability in 
      let alertController = UIAlertController(title: "Alert", message: "Not Reachable", preferredStyle: .Alert) 

      let defaultAction = UIAlertAction(title: "OK", style: .Default, handler: nil) 
      alertController.addAction(defaultAction) 

      self.presentViewController(alertController, animated: true, completion: nil) 
     } 

     reachability.startNotifier() // - Error Here 

    } 
+1

Вы посмотрели «Пример - закрытие» на https://github.com/ashleymills/Reachability.swift? –

+0

@Leo Dabus Не могли бы вы обновить следующий код в этом вопросе, спасибо, получив ошибки на данный момент. –

+0

@GurvierSinghDhillon попробуйте сначала прочитать ссылку Martin R, только что опубликованную для вас –

ответ

0

Если вы посмотрите на example, вам нужно обернуть вызов с try.

let reachability = try Reachability.reachabilityForInternetConnection() 

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

Когда функция генерирует ошибку, она изменяет поток вашей программы, поэтому важно быстро определить места в коде, которые могут вызывать ошибки. Чтобы идентифицировать эти места в вашем коде, напишите ключевое слово try или вариант try? или try! - перед фрагментом кода, который вызывает функцию, метод или инициализатор, которые могут выдать ошибку.

Вы можете прочитать больше на Apple reference site.