NSArray *arr = [NSArray arrayWithObjects:@"m",
@"f",
@"m",
@"f",
@"f",
nil];
如何将@"f"
的所有值简单地放入它自己的数组中?使用键值收集运算符(不使用手动循环)?NSArray返回特定值
例如我认为它可能看起来像[arr valueForKeyPath:@"self==f"]
。有什么建议么?
NSArray *arr = [NSArray arrayWithObjects:@"m",
@"f",
@"m",
@"f",
@"f",
nil];
如何将@"f"
的所有值简单地放入它自己的数组中?使用键值收集运算符(不使用手动循环)?NSArray返回特定值
例如我认为它可能看起来像[arr valueForKeyPath:@"self==f"]
。有什么建议么?
您可以使用NSPredicate:
[arr filteredArrayUsingPredicate:
[NSPredicate predicateWithFormat:@"self == %@", @"f"]];
键 - 值集合运营商都建立了聚合操作(例如计数,总和,分钟,最大),而不是过滤。使用这些操作员无法做到这一点,但您可以使用[NSArray indexesOfObjectsPassingTest:]
和[NSArray objectsAtIndexes:]
(或只是[NSArray filteredArrayUsingPredicate:]
)来实现所需的结果。
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]];
}
}