UIAlert不与NSNotification一起工作

问题描述:

我在应用程序中放置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)  } 
} 

}

这是不工作,我得到一个错误,

试图加载而它重新分配是不允许的视图控制器的视图,并且可以导致未定义的行为

我不明白这是什么意思。 如果我把代码打印(“无法访问”)将正常工作。

我的问题

什么是错误的含义是什么?

如何让我的警报有效?

如果还有其他方式让用户知道互联网连接,请致电我。

+0

如果已经从'UIAlertViewController'一样,如果没有使用它或类变量定义的警报! –

+0

我宣布对上述的UILabel通货紧缩这个代码,VAR myAlert = UIAlertController()////不过,我仍然有同样的错误 –

+0

尝试在viewDidAppear您reachibility一次不是在viewDidLoad中 –

尝试添加在警报 这条线(self.presentViewController(myAlert,动画:真,完成:无))

+0

同样的问题发生,但工作! –

+0

我删除var myAlert = UIAlertController()后,它工作正常。 –