I have seen answers here which explain how to tell the compiler that an array is of a certain type in a loop.
However, does Swift give a way so that the loop only loops over items of the specified type in the array rather than crashing or not executing the loop at all?
You can use a for-loop with a case-pattern:
for case let item as YourType in array {
// `item` has the type `YourType` here
// ...
}
This will execute the loop body only for those items in the
array which are of the type (or can be cast to) YourType
.
Example (from Loop through subview to check for empty UITextField - Swift):
for case let textField as UITextField in self.view.subviews {
if textField.text == "" {
// ...
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With