NSPredicate 查找具有相同标记形式的 UIView self.view.subviews Swift

NSPredicate to find UIView with same tag form self.view.subviews Swift

我想从 self.superview?.subviews 中的一个数组中找到标签为 1 的 UIView,但出现错误 [UIView] 类型的值没有成员 filteredArrayUsingPredicate。

//This is my code
   let predicate:NSPredicate = NSPredicate(format: "self.tag == 1")
   var arrFilteredVw = []
   if(self.superview?.subviews.count>0){
        arrFilteredVW = self.superview?.subviews.filteredArrayUsingPredicate(predicate)
   }

我的简单问题是我不想在此处使用 for in 循环 如何使用谓词进行循环。

这是因为 filteredArrayUsingPredicate 被定义为 NSArray 的扩展而不是 Swifts Array(在你的情况下是 [UIView])。

在 Swift 中,您可以通过这种方式实现相同的目的:

var arrFilteredVw = []
if(self.superview?.subviews.count>0){
    arrFilteredVW = self.superview?.subviews.filter { (subview) -> Bool in
        return subview.tag == 1
    }
}