在swift中解包可选值时出现致命错误

时间:2016-08-06 10:38:33

标签: swift

当我尝试在swift中更新标签时,我收到以下错误。

  

致命错误:在解包可选值时意外发现nil

一定有我遗失的东西。这些是涉及的两个变量:

Label and Double variable

这是func,我似乎得到了错误:

Method to update label

据我所知,我想要更新标签的变量的值为19.875531899929,我希望标签显示Int部分。零是从哪里来的?我找不到这个错误了。

我在 AppDelegate.swift applicationDidBecomeActive方法中从ViewController实例调用该方法的事实可以与它有关吗?这是调用方法的简短代码:

func applicationDidBecomeActive(application: UIApplication) {         

    viewControllerInstance.convertAlertTimeToCountdownFromMinutes() 

}

AppDelegate.swift 中的变量:

var viewControllerInstance = ViewController()

1 个答案:

答案 0 :(得分:2)

您的UILabel对象为零,忘记将IBOutletviewController标签相关联,请尝试将IBOutletUILabel s连接命名为 lblMinutes lblMinutesTag

新修改

如果您想在应用激活时更新标签的价值,可以使用NSNotificationCenter,在viewController内添加以下代码。

override func viewDidLoad() {
    super.viewDidLoad()
    NSNotificationCenter.defaultCenter().addObserver(self, selector: "applicationBecameActive:",
           name: UIApplicationDidBecomeActiveNotification,object: nil)
}

func applicationBecameActive(notification: NSNotification){
    self.convertAlertTimeToCountdownFromMinutes() 
}

deinit{
    NSNotificationCenter.defaultCenter().removeObserver(self)
}