NSArray *arr = [NSArray arrayWithObjects:@"m",
@"f",
@"m",
@"f",
@"f",
nil];
如何将@"f"
的所有值简单地放入其自己的数组中?使用键值集合运算符(不使用手动循环)?
例如,我认为它可能看起来像[arr valueForKeyPath:@"self==f"]
。有什么建议吗?
答案 0 :(得分:2)
您可以使用NSPredicate:
[arr filteredArrayUsingPredicate:
[NSPredicate predicateWithFormat:@"self == %@", @"f"]];
答案 1 :(得分:1)
为集合运营构建键值集合运算符(例如计数,总和, min , max )而不是过滤。使用这些运算符无法做到这一点,但您可以使用[NSArray indexesOfObjectsPassingTest:]
和[NSArray objectsAtIndexes:]
(或仅[NSArray filteredArrayUsingPredicate:]
)来获得所需的结果。
答案 2 :(得分:0)
This is your Array
NSArray *arr = [NSArray arrayWithObjects:@"m", @"f", @"m", @"f", @"f", nil];
in normal functionality is
NSArray *FinalArray = [NSArray alloc]init];
for(int i=0;i <[arr count];i++)
{
if([arr objectAtIndex:i] isEqualAtString:@"f"])
{
[FinalArray addObject:[arr objectAtIndex:i]];
}
}