如何评估单个对象上的NSPredicate?
例如:
myLabel.matchesPredicate(NSPredicate(format: "numberOfLines > 2 && enabled == YES"))
...如果numberOfLines大于2且标签已启用,则应返回YES。
答案 0 :(得分:0)
Objective-C答案;我不太了解Swift以使语法接近正确:
UILabel *matchingLabel = [@[ myLabel ] filteredArrayUsingPredicate:[NSPredicate ...]].lastObject;
答案 1 :(得分:0)
尝试这样的事情:
let predicate = NSPredicate(...)
let matchesPredicate = [myLabel].filter{ predicate.evaluateWithObject($0) }.count > 0
或更简单
let predicate = NSPredicate(...)
let matchesPredicate = predicate.evaluateWithObject(myLabel)
注意myLabel周围的方括号以创建单个元素数组,然后我们可以根据您的谓词进行过滤。如果myLabel与条件不匹配,则过滤后数组的大小将为零,否则为。