2012-02-21 6 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]]; 
} 
}