2012-04-19 4 views
1

特定の文字列で始まるNSStringの配列内のすべてのオブジェクトを見つけようとしていて、これらのオブジェクトをすべて含む小さな配列を返します。配列に文字列で始まるオブジェクトが含まれているNSStringのNSArray

'Cat', 
'Dog', 
'Dolphin', 
'Whale' 

をそして、それは検索文字列がdoあるとき、新しいNSArrayのはDogDolphinオブジェクトで返されます。たとえば、オブジェクトと配列を持つことができます。

答えて

6
NSString* beginsWithRequirement = @"do"; 
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[cd] %@", beginsWithRequirement]; 
NSArray* subArray = [originalArray filteredArrayUsingPredicate:predicate]; 

Predicate Programming Guideを参照してください。

+0

を確認することができます。私は "SELF BEGINSWITH [cd]%@"を追加しなければなりません。単純な古い%@を使用するだけではありません。 –

0

はこれを試してみてください - 述語を使用する方法の詳細については

-(NSArray *)entriesInArray:(NSArray *)wordsArray whichStartWithString:(NSString *)startString { 

    startString = [startString lowercaseString]; // get rid of this for case-sensitive (& the lowercaseString bit in the loop too) 
    NSMutableArray *resultsArray = [NSMutableArray array]; 

    for (NSString *thisString in wordsArray) { 
     if ([[thisString lowercaseString] hasPrefix:startString]) [resultsArray addObject:thisString]; 
    } 

    return resultsArray; 

} 
0

はNSPredicateで試してみてください。詳細については

NSArray *arr = [NSArray arrayWithObjects:@"Dog", 
              @"Cat", 
              @"Dolphin", 
              @"Tiger", nil]; 
NSString *search = @"do"; 
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[c] %@", search]; 
NSArray *result = [arr filteredArrayUsingPredicate:predicate]; 

をあなたはとてもファンキーおかしくなりましたPredicate Programming Guide

関連する問題