有很多方法可以做到这一点,但到目前为止,最肯定的方法是使用[NSPredicate predicateWithBlock:]:
NSArray *filteredArray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
return [object shouldIKeepYou]; // Return YES for each object you want in filteredArray.
}]];
我认为这简明扼要。
迅速:
对于那些工作NSArrayS IN斯威夫特,你可能更喜欢这种更简洁的版本:
nsArray = nsArray.filter { $0.shouldIKeepYou() }
filter仅仅是Array(NSArray隐式桥接到Swift的Array)的方法。它带有一个参数:一个闭包,它在数组中使用一个对象并返回Bool。在关闭时,只需返回true过滤数组中所需的任何对象即可。