#arrays #nspredicate
#массивы #nspredicate
Вопрос:
У меня есть массив имя_человека###имя_страны_:
Bob###USA
Tim###UK
Sandy###German
У меня есть панель поиска пользовательского интерфейса, которая ищет имя пользователя (т.е. не учитывает страну), следующий NSPredicate ищет имя пользователя, а также страну, как мне его перестроить, чтобы он искал только имя пользователя?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] %@", __searchTerm];
NSArray *result = [self.source filteredArrayUsingPredicate:predicate];
массив person ###country создается каким-то сложным способом, поэтому не предлагайте мне создавать другой массив только с именами пользователей, кроме того, в разных странах могут быть разные люди с одинаковыми именами.
Большое спасибо!
Ответ №1:
Вы бы использовали BEGINSWITH
вместо CONTAINS
.
Но на самом деле: если две части данных разделены, почему вы сохраняете их в одной строке? Вы должны разделить их и создать новый класс с двумя свойствами: name
и country
. Это сделает все это намного проще.
Комментарии:
1. Спасибо, но BEGINSWITH не работает, если я ищу «ob», где должно быть возвращено «Bob ### USA», а BEGINSWITH не возвращает его.