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

Posted

技术标签:

【中文标题】Swift:无效参数不满足:约束【英文标题】:Swift: Invalid parameter not satisfying: constraint 【发布时间】:2014-08-26 13:22:17 【问题描述】:

我收到了错误:

无效参数不满足:[constraint 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)

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

【问题讨论】:

【参考方案1】:

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)

【讨论】:

以上是关于Swift:无效参数不满足:约束的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 映射无效参数不满足:managedObjectStore

UICollectionViewDiffableDataSource 崩溃:无效参数不满足:itemCount

AFHTTPRequestOperationManager urlstring 编码和无效参数不满足:URLString

无效参数不满足:nibNameMap != nil

NSInternalInconsistencyException: '无效参数不满足: !stayUp || CLClientIsBackgroundable(内部->fClient)'

pageViewController setViewControllers 因“无效参数不满足:[views count] == 3”而崩溃