2012-03-10 1 views
0

Я хочу найти объект NSArray для некоторых строк, содержащих определенную последовательность букв в любой позиции. Он должен быть похож на нечто вроде «LIKE-оператора», который мы используем в базе данных. Например, я хочу найти всю строку, содержащую 'ab' в моем объекте NSArray.что-то вроде% ab% в NSArray

ответ

1

Если у вас есть массив объектов NSString ...

NSArray *array = [NSArray arrayWithObjects:@"String one", @"String two", @"String three", nil]; 
for (NSString *string in array) 
{ 
    if ([string rangeOfString:@"XYZ"].location != NSNotFound) 
     NSLog (@"Found one: %@", string);    
} 

[править]

Чтобы добавить, что вы можете также использовать метод rangeOfString:options:, если вам нужно нечувствительны к регистру поиск среди других.

2

Вы можете фильтровать массив с помощью predicate:

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"abs", @"bar", @"foo", @"fabs", nil]; 

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] 'ab'"]; 
NSArray *filteredArray = [array filteredArrayUsingPredicate:predicate]; 
Смежные вопросы