我想在self.superview?.subviews的一个数组中找到标记为1的UIViews但是我收到错误类型[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
循环如何使用谓词。
答案 0 :(得分:4)
这是因为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
}
}