Swift: invalid parameter does not satisfy: restriction

I get an error message:

Invalid parameter that does not satisfy: [constraint isKindOfClass: [NSLayoutConstraint class]]

for my auto-layout constraint code written in 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) 

Does anyone have an idea what this error is trying to tell me? As far as I know, the parameter is of type NSArray with NSLayoutConstraint objects in it. I suspected that I should explicitly define arrays as NSArray , but not solving it.

+6
source share
1 answer

NSLayoutConstraint.constraintsWithVisualFormat already returns an NSArray , so you don't need to NSArray it in another array. So try:

 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) 
+20
source

Source: https://habr.com/ru/post/974371/


All Articles