【发布时间】:2016-02-08 08:44:21
【问题描述】:
我将 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") 将正常工作的代码。
我的问题
那个错误是什么意思?
我怎样才能使我的警报有效?
如果有其他方法可以让用户知道互联网连接,
请告诉我。
【问题讨论】:
-
如果你已经从
UIAlertViewController定义了警报,像这样没有使用它或在类变量中! -
我在上面的 UILabel 通缩上声明了这段代码 var myAlert = UIAlertController() //// 但我仍然有同样的错误
-
尝试在 viewDidAppear 中的可达性一旦不在 viewDidLoad 中
-
在你的视图中加载所有对象之前的原因,一些对象的内存被释放了,这就是为什么,现在它是否可以正常工作
-
哦,是的,我明白了。但它仍然不起作用。很高兴知道!不过谢谢!
标签: ios swift nsnotification