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]];
}
}