2015-11-07 3 views
1

Я установил файл Reachability.swift в свое приложение, когда изменилась доступность в Интернете, я хочу предупредить пользователя о недоступности интернет-соединения.UIAlert не работает с NSNotification

это мой код.

import UIKit 
import Parse 

class ViewController: UIViewController { 
var reachability : Reachability? 
var myAlert = UIAlertController() 

@IBOutlet weak var label: UILabel! 
@IBOutlet weak var textField: UITextField! 
override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(true) 

    do { 
     let reachability = try Reachability.reachabilityForInternetConnection() 
     self.reachability = reachability 
    } catch ReachabilityError.FailedToCreateWithAddress(let address) { 

    } 
    catch {} 


NSNotificationCenter.defaultCenter().addObserver(self, selector: "HeyUserInternetDoesntWork", name: ReachabilityChangedNotification, object: nil) 

    } 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

@IBAction func saveButtonTapped(sender: AnyObject) { 

    let save = PFObject(className: "Practice") 
    save["text"] = textField.text 
    save.saveInBackgroundWithBlock { (success: Bool, error: NSError?) -> Void in 
     print("Object has been saved.") 
    } 

} 


    dynamic func HeyUserInternetDoesntWork() { 


    if reachability!.isReachable() { 


    } else { 


     myAlert = UIAlertController(title: "No internet", message: "no good", preferredStyle: UIAlertControllerStyle.Alert) 
     let okAction = UIAlertAction(title: "Ok", style: UIAlertActionStyle.Default, handler: nil) 
     myAlert.addAction(okAction)  } 
} 

}

это не работает, я получил сообщение об ошибке, что

Попытка загрузить вид контроллера представления во время его deallocating не допускается и может привести к непредсказуемому поведению

Я не понимаю, что это значит. Если я поставлю код, который печатает («unreachable»), он будет работать нормально.

Мой вопрос

что смысл этой ошибки?

Как я могу заставить мое предупреждение работать?

Если есть другой способ, чтобы позволить пользователю знать подключение к Интернету,

пожалуйста, дайте мне знать.

+0

если вы определили предупреждение от 'UIAlertViewController', как, что без его использования или в переменном классе ! –

+0

Я объявляю этот код, var myAlert = UIAlertController() в дефляции UILabel выше ////, но все же у меня есть одна и та же ошибка –

+0

попробуйте вашу доступность в viewDidAppear как только не в viewDidLoad –

ответ

0

попытки добавить эту строку под начеку (self.presentViewController (myAlert, анимированный: правда, завершение: ноль))

+0

такой же проблема возникает, но работа! –

+0

после удаления var myAlert = UIAlertController(), он отлично работает. –