我试图让UIAlert弹出,但每当代码调用应该执行此操作的函数时,过程中完全不相关的值会导致错误,表示当它预期有值时返回nil 。我解决了这个问题,但我不知道为什么我的解决方案有效。
原文:
var fullFreqHeard: [Double] = []
@IBOutlet weak var fullFreqLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
fullFreqLabel.text = "\(fullFreqHeard)"
}
解决方案:
var fullFreqHeard: [Double] = []
@IBOutlet weak var fullFreqLabel: UILabel?
override func viewDidLoad() {
super.viewDidLoad()
fullFreqLabel?.text = "\(fullFreqHeard)"
}
不同之处在于原始的I力打开了标签,而在解决方案中我使用了'?'。这里发生了什么?我也想知道它是否与警报有任何关系。
答案 0 :(得分:0)
我不认为它与警报有任何关系。强制解包修复错误的原因是因为fullFreqLabel最初为零。您必须在设置它的值之前初始化它。例如,var fullFreqLabel = UILabel(frame: CGRect.zero)