Tôi đang sử dụng chỉ số NSArray
's indexesOfObjects (passingTest :), nhưng sau khi tôi chuyển đổi mã của mình thành Swift 3 Tôi nhận được lỗi: "Sử dụng không rõ ràng 'indexOfObject (passingTest :)'". Mã của tôi dưới đây hoạt động tốt với Swift 2.3.Sau khi chuyển đổi Swift 3, tôi không thể loại bỏ lỗi: "Sử dụng không rõ ràng 'indexOfObject (passingTest :)'"
let indexesOfBubbleConstraints = bubbleConstraints.indexesOfObjects(passingTest: { (constraint, idx, stop) in
if let view = constraint.firstItem as? UIView{
return view.tag == usernameTag
}
else{
return false
}
})
Đối Swift 3, tôi cũng đã phải đúc constraint
-AnyObject
, nhưng điều đó không giải quyết vấn đề thực tế.
Tôi đã kết thúc bằng cách sử dụng func indexesOfObjects(options: NSEnumerationOptions = [], passingTest: (Any, Int, UnsafeMutablePointer<ObjCBool>) -> Bool)
với một mảng trống cho các tùy chọn như bên dưới. Điều này làm việc, nhưng tôi vẫn không hiểu tại sao tôi nhận được lỗi "mơ hồ ..." với triển khai ban đầu của mình.
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
}
})
Great câu trả lời chi tiết! Tôi cũng đánh giá cao nhận xét cuối cùng của bạn và chắc chắn sẽ làm như bạn đề xuất. – Stephan