【问题标题】:UIAlert does not working with NSNotificationUIAlert 不适用于 NSNotification
【发布时间】: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


【解决方案1】:

尝试在警报下添加此行 (self.presentViewController(myAlert, 动画: true, 完成: nil))

【讨论】:

  • 删除 var myAlert = UIAlertController() 后,它工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 2015-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多