2012-02-21 3 views
0
NSArray *arr = [NSArray arrayWithObjects:@"m", 
        @"f", 
        @"m", 
        @"f", 
        @"f", 
        nil]; 

@"f"のすべての値を、単にそれ自体の配列に入れることはできますか? キー値収集演算子(手動ループを使用しない)を使用していますか?NSArrayは特定の値を返します

たとえば、[arr valueForKeyPath:@"self==f"]のように見えます。助言がありますか?

答えて

2

あなたはNSPredicateを使用することができます。

[arr filteredArrayUsingPredicate: 
[NSPredicate predicateWithFormat:@"self == %@", @"f"]]; 
1

キーと値のコレクション演算子は、集約操作(例えば合計最大)およびフィルタリングないために構築されています。これらの演算子を使用してこれを行う方法はありませんが、[NSArray indexesOfObjectsPassingTest:][NSArray objectsAtIndexes:](またはちょうど[NSArray filteredArrayUsingPredicate:])を使用して目的の結果を得ることができます。

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]]; 
} 
} 
関連する問題