Swift:无效参数不满足:约束

Bad*_*Cat 7 xcode objective-c ios nslayoutconstraint swift

我收到错误:

无效参数不满足:[约束isKindOfClass:[NSLayoutConstraint class]]

对于我用Swift编写的自动布局约束代码:

    let d:NSDictionary = ["scrollView": scrollView]
    let hc:NSArray = [NSLayoutConstraint.constraintsWithVisualFormat("H:|[scrollView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: d)]
    let vc:NSArray = [NSLayoutConstraint.constraintsWithVisualFormat("V:|[scrollView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: d)]
    view.addConstraints(hc)
    view.addConstraints(vc)
Run Code Online (Sandbox Code Playgroud)

有谁知道这个错误试图告诉我什么?据我所知,参数是NSArray带有NSLayoutConstraint对象的类型.我怀疑我必须明确定义数组,NSArray但这并没有解决它.

Mik*_*ard 20

NSLayoutConstraint.constraintsWithVisualFormat已经返回一个,NSArray所以你不需要将它包装在另一个数组中.所以尝试:

let d:NSDictionary = ["scrollView": scrollView]
let hc:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("H:|[scrollView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: d)
let vc:NSArray = NSLayoutConstraint.constraintsWithVisualFormat("V:|[scrollView]|", options: NSLayoutFormatOptions.allZeros, metrics: nil, views: d)
view.addConstraints(hc)
view.addConstraints(vc)
Run Code Online (Sandbox Code Playgroud)