一尘不染

For-in循环和类型转换仅适用于与类型匹配的对象

swift

我在这里看到了答案,这些答案解释了如何告诉编译器循环中数组是某种类型的。

但是,Swift是否提供一种方法,使循环仅循环遍历数组中指定类型的项,而不崩溃或根本不执行循环?


阅读 225

收藏
2020-07-07

共1个答案

一尘不染

您可以将for循环与case-pattern一起使用:

for case let item as YourType in array {
    // `item` has the type `YourType` here 
    // ...
}

这将仅对数组中类型(或可以强制转换为)的那些项执行循环体YourType

for case let textField as UITextField in self.view.subviews {
    if textField.text == "" {
        // ...
    }
}
2020-07-07