1

特定の文字列で始まるNSStringの配列内のすべてのオブジェクトを検索し、それらのオブジェクトをすべて含む小さな配列を返そうとしています。たとえば、オブジェクトを含む配列を作成できます。

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

また、検索する文字列が、の場合、オブジェクトのみdoを含む新しいNSArrayが返されます。DogDolphin

4

3 に答える 3

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

述語の使用の詳細については、「述語プログラミングガイド」を参照してください。

于 2012-04-19T13:08:55.650 に答える
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;

}
于 2012-04-19T13:04:14.880 に答える
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];

詳細については、述語プログラミングガイドを確認してください。

于 2012-04-19T13:10:55.390 に答える