UIAlert не работает с NSNotification

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

это мой код.

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

}

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

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

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

Мой вопрос

что означает эта ошибка?

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

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

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


person Janghyup Lee    schedule 07.11.2015    source источник
comment
если вы определили оповещение от UIAlertViewController так, не используя его или в переменной класса!   -  person Anbu.Karthik    schedule 07.11.2015
comment
Я объявляю этот код, var myAlert = UIAlertController() в дефляции UILabel выше ////, но все же у меня такая же ошибка   -  person Janghyup Lee    schedule 07.11.2015
comment
попробуйте свою доступность в viewDidAppear один раз не в viewDidLoad   -  person Anbu.Karthik    schedule 07.11.2015
comment
причина, по которой перед загрузкой всех объектов в вашем представлении память некоторых объектов освобождается, поэтому теперь это работает, братан, или нет   -  person Anbu.Karthik    schedule 07.11.2015
comment
о да, я понял. но это все еще не работает. это хорошо знать! Однако, спасибо!   -  person Janghyup Lee    schedule 07.11.2015
comment
теперь и вы столкнулись с той же проблемой   -  person Anbu.Karthik    schedule 07.11.2015


Ответы (1)


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

person Hussein Alzand    schedule 07.11.2015
comment
после удаления var myAlert = UIAlertController() все работает нормально. - person Janghyup Lee; 07.11.2015