Ваша проблема имеет два или три аспекта:
(1) Вы должны определить, что такое слово разделитель и что принадлежит слову, которое вы ищете. Например, «A, B» может означать «искать« A »и« B »», или это может означать «искать« A »и« _B »» («undescore» обозначает пробел)
Возможно, вы хотите разделить searchText следующим образом:
NSArray *listItems = [searchText componentsSeparatedByCharactersInSet:
[characterSetWithCharactersInString:@", "]];
Возможно, вы хотите удалить пробельные символы из объектов listItems и пустые объекты из listItems впоследствии.
(2) Только после этого вы можете решить, как искать то, что вы получили на этапе (1), например, создав предикат, который ищет все объекты в listItems:
NSPredicate *inPredicate = [NSPredicate predicateWithFormat: @"SELF IN %@",
listItems];
NSArray* filteredArray = [arrayTags filteredArrayUsingPredicate:inPredicate];
Обратите внимание, что этот предикат чувствителен к регистру, поэтому создайте свой собственный для других требований!
(3) FilterArray, вероятно, должен быть членом вашего класса представления и является новым tableDataSource. Но есть несколько тонкостей, которые нужно решить: пустой текст поиска, переключение источника данных с фильтрованного на нефильтрованный контент и т. Д.