Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parameters Swift:浇铸闭合参数?_Parameters_Casting_Closures_Swift - Fatal编程技术网

Parameters Swift:浇铸闭合参数?

Parameters Swift:浇铸闭合参数?,parameters,casting,closures,swift,Parameters,Casting,Closures,Swift,以下代码导致编译器错误:找不到成员“Left” let indexOfConstraint = constraints.indexOfObjectPassingTest { (constraint, idx, stop) in return constraint.firstAttribute == .Left } 在之前预加nslayouttribute。Left修复了错误,但是是否有方法将约束强制转换为nslayouttribute 例如,在Objective-C中,我可以在指定参数

以下代码导致编译器错误:
找不到成员“Left”

let indexOfConstraint = constraints.indexOfObjectPassingTest { (constraint, idx, stop) in
    return constraint.firstAttribute == .Left
}
之前预加
nslayouttribute
。Left
修复了错误,但是是否有方法将
约束强制转换为
nslayouttribute

例如,在Objective-C中,我可以在指定参数时强制转换
约束

NSUInteger indexOfConstraint = [constraints indexOfObjectPassingTest:^BOOL(NSLayoutConstraint *constraint, NSUInteger idx, BOOL *stop) {
    return constraint.firstAttribute == NSLayoutAttributeLeft
}];

可以使用括号强制转换:

let indexOfConstraint = constraints.indexOfObjectPassingTest { (constraint, idx, stop) in
    return (constraint as NSLayoutConstraint).firstAttribute == .Left
}

。。。这可能比仅仅使用
nslayouttribute更难看。左

您是否尝试过
(约束为nslayouttribute)。firstAttribute
?是的,我想这是最好的选择。在问了这个问题后我意识到这是有效的。是的,我想我还是用后者吧。谢谢!:-)