我试图在以特定字符串开头的 NSStrings 数组中查找所有对象,并返回一个包含所有这些对象的较小数组。例如,您可以有一个包含对象的数组:
'Cat',
'Dog',
'Dolphin',
'Whale'
当它搜索的字符串是 时do
,只返回一个新的 NSArrayDog
和Dolphin
对象。
NSString* beginsWithRequirement = @"do";
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"SELF BEGINSWITH[cd] %@", beginsWithRequirement];
NSArray* subArray = [originalArray filteredArrayUsingPredicate:predicate];
有关使用谓词的更多信息,请参阅谓词编程指南。
尝试这个 -
-(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;
}
尝试使用 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];
有关更多信息,您可以查看谓词编程指南