为heightconstraint.constant分配值时出现lldb错误

时间:2018-10-16 11:45:53

标签: swift xcode macos

我创建了一个高度限制,我正在根据屏幕尺寸为其指定一个值。但是在分配时,我在行Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

上收到了错误heightConstraint.constant = Height
var heightConstraint: NSLayoutConstraint!
let Height =((intra_acc_send_b.frame.origin.y+intra_acc_send_b.frame.size.height)+20)

print ("\nheight%%%%%%%%%%%%%%%% ") ; print(Height); print(" %%%%%%%%%%%%%%%%%\n");
heightConstraint.constant = Height 
self.scrollView.contentSize = CGSize(width: Width,  height: heightConstraint.constant )

请帮助我找出解决方案。

3 个答案:

答案 0 :(得分:2)

heightConstraint为nil,您正在访问它,这就是该错误的原因。在4.2版中,隐式强制展开已被废止。因此,如果您检查heightConstraint,即使它具有值,即使它具有ImplicitlyForceWapped,它也会给出可选值。

在分配新值之前,您需要使用if letguard进行可选绑定以安全地展开。

if let constraints = heightConstraint {
    heightConstraint.constant = Height 
}

guard let constraints =  heightConstraint else { return }
heightConstraint.constant = Height 

您的视图尚未创建,这就是为什么高度尚未出现的原因。

答案 1 :(得分:0)

这是因为您从未初始化heightConstraint(它是nil)。 您需要先对其进行初始化。

如果heightConstraint@IBOutlet,则需要在viewDidLoad或更高版本中运行此代码。

答案 2 :(得分:0)

请注意以下几行:

print ("\nheight%%%%%%%%%%%%%%%% ") ; print(Height); print(" %%%%%%%%%%%%%%%%%\n");
heightConstraint.constant = Height 
self.scrollView.contentSize = CGSize(width: Width,  height: heightConstraint.constant )

根据您使用的课​​程类型:

在ViewController中

之后或期间放置它们
viewDidLoad

在视图中

之后或期间放置它们
awakeFromNib