Swift 4.0 无法使用“(NSLayoutConstraint)”类型的参数列表调用类型 'NSLayoutConstraint' 的初始值设定项

Swift 4.0 cannot invoke initializer for type 'NSLayoutConstraint' with an argument list of type '(NSLayoutConstraint)'

我正在使用 XCode 版本 9.0 (9A235)、macOS Sierra 版本 10.12.6 (16G29)、iOS 11.0.

我需要将约束添加到数组中,然后我需要激活它。

为此我喜欢...

// 1.Declare and initialized  the constraint

private lazy var labelConstraints = [NSLayoutConstraint]()

// 2.Prepare constraint   
let widthConstraint = 
    headerLabel.widthAnchor.constraint(equalTo: licenseLabel.widthAnchor)

// 3.Constraint added into the array   
labelConstraints.append(NSLayoutConstraint(widthConstraint))

// 4.Finally activate the constraints   
labelConstraints.activate()

构建我的 xcode 项目后,它会抛出类似

的错误
ERROR: **cannot invoke initializer for type 'NSLayoutConstraint' with an argument list of type '(NSLayoutConstraint)'** 

**labelConstraints.append(NSLayoutConstraint(widthConstraint))**

你的第一个问题在这里:

labelConstraints.append(NSLayoutConstraint(widthConstraint))

您的 widthConstraint 变量已经是 NSLayoutConstraint,因此您无需尝试将其转换为 NSLayoutConstraint。只需这样做:

labelConstraints.append(widthConstraint)

你的第二个问题在这里:

labelConstraints.activate()

类型 Array 没有 activate 方法。您可以像这样激活 labelConstraints 中的所有约束:

NSLayoutConstraint.activate(labelConstraints)