我在使用带有值的变量中的字符串更新label.text
时,我的应用中遇到了一个奇怪的崩溃。
if WalletViewController.currencyUSD == true {
MainViewController.bitcoinDoublePrice = Double((bitcoinInfo.raw.btc.usd?.price)!)
print("MainViewController.bitcoinDoublePrice =", MainViewController.bitcoinDoublePrice)
let formatter = NumberFormatter()
formatter.numberStyle = .currency
formatter.locale = Locale(identifier: "en_US")
let bitcoinStringPrice = formatter.string(from: NSNumber(value: MainViewController.bitcoinDoublePrice))
print("bitcoinStringPrice =", bitcoinStringPrice!)
if let bitcoinPrice = bitcoinStringPrice {
MainViewController().bitcoinPriceLabel.text = String(bitcoinPrice + ", ") //<<<Thread 3: Fatal error: Unexpectedly found nil while unwrapping an Optional value
} else {
print("bitcoinPrice = nil")
}
}
一些截图:
我无法弄清楚这里发生了什么
答案 0 :(得分:1)
您在绘制之前指定了bitcoinPriceLabel
值。
这不是价值。
答案 1 :(得分:0)
您正在错误发生的行中初始化 MainViewController
的新实例。
查看控制器在初始化后不会直接安装其插座,因此bitcoinPriceLabel
将为零。
将MainViewController()
更改为您当前正在使用的实例,因此它将引用应用程序中可见的视图控制器的标签(在此示例中为mainVc
):
mainVc.bitcoinPriceLabel.text = String(bitcoinPrice + ", ")
详细了解视图控制器生命周期here。