我的数组arr
最初包含以下
[A,B,C,D,E,F,G];
现在我要删除A,B和C,我可以像下面这样做
[arr enumerateObjectsUsingBlock:^(NSString *name, NSUInteger idx, BOOL *stop) {
if ( [name isEqualToString:@"A"] || [name isEqualToString:@"B"] || [name isEqualToString:@"C"]);
[arr removeObject:name];
}];
问题:是否可以使用nsexpression来实现。听起来像定义一个包含A和B和C的nsexpression,然后我们根据nxpression删除元素。
任何想法如何实现这一目标。欢迎所有评论。感谢。
答案 0 :(得分:3)
不要直接使用NSExpression
,而应考虑filteredArrayUsingPredicate:
或NSMutableArray
,filterUsingPredicate:
。这将返回由谓词过滤的新数组,或者根据谓词变异的同一数组。
此外,枚举时改变你的收藏并不是一个好主意。