Я вызываю метод testReachability(), когда UIButton нажата для проверки подключения к Интернету, прежде чем он завершит действие. Это использует класс достижимости Эшли Милл.Swift - сбой с достижимостью
On Line 24 Я вызываю завершенный(), так что, если приложение может достичь сети, оно завершит закрытие и продолжит действие остальной части действия. Однако приложение становится глючным, и эта ошибка отображается в консоли отладки:
«Это приложение модифицирует механизм автозапуска из фонового потока, что может привести к повреждению двигателя и странным сбоям. Это приведет к исключению в будущей версии . »
И если я позвоню завершен(), скажем, строка 26, приложение работает безупречно, быстро и плавно, пока я не потеряю подключение к Интернету/не войду в режим полета. Затем приложение мгновенно сработает, а xcode теряет соединение с устройство на кране кнопки.
Мой вопрос заключается в том, что я могу сделать, чтобы разрешить сбой моего приложения при проверке на доступность.
func testReachability(completed: DownloadComplete)
{
let reachability: Reachability
do {
reachability = try Reachability.reachabilityForInternetConnection()
} catch {
return
}
reachability.whenReachable = { reachability in
// this is called on a background thread, but UI updates must
// be on the main thread, like this:
dispatch_async(dispatch_get_main_queue())
{
if reachability.isReachableViaWiFi()
{
print("Reachable via WiFi")
}
else
{
print("Reachable via Cellular")
}
}
completed()
}
reachability.whenUnreachable = { reachability in
// this is called on a background thread, but UI updates must
// be on the main thread, like this:
dispatch_async(dispatch_get_main_queue())
{
self.presentReachabilityAlertController()
}
}
do
{
try reachability.startNotifier()
}
catch
{
}
}
func presentReachabilityAlertController()
{
let alert = UIAlertController(title: "Network Connection Lost", message:"Try Again", preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "ok" , style: .Default) { _ in })
presentViewController (alert, animated: true ) { }
connected = false
}
Пожалуйста, добавьте соответствующие части кода в свой вопрос как текст, а не как изображение. – JAL
См. Http://stackoverflow.com/editing-help – jtbandes
@JAL мои извинения, исправлены немедленно – lifewithelliott