【发布时间】:2017-01-26 21:53:03
【问题描述】:
我正在使用NSArray 的 indexOfObjects(passingTest:),但在将代码转换为 Swift 3 后,我收到错误消息:“不明确地使用 'indexOfObject(passingTest:)'”。
我下面的代码在 Swift 2.3 上运行良好。
let indexesOfBubbleConstraints = bubbleConstraints.indexesOfObjects(passingTest: { (constraint, idx, stop) in
if let view = constraint.firstItem as? UIView{
return view.tag == usernameTag
}
else{
return false
}
})
对于 Swift 3,我还必须将 constraint 转换为 AnyObject,但这并不能解决实际问题。
我最终使用func indexesOfObjects(options: NSEnumerationOptions = [], passingTest: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool) 和一个空数组作为以下选项。这可行,但我仍然不明白为什么我的原始实现会出现“模棱两可...”错误。
let indexesOfBubbleConstraints = bubbleConstraints.indexesOfObjects(options: [], passingTest: { (constraint, idx, stop) in
if let view = (constraint as AnyObject).firstItem as? UIView{
return view.tag == usernameTag
}
else{
return false
}
})
【问题讨论】:
标签: ios compiler-errors swift3 ios10 ambiguous