(Примечание: Это расширение previous question.)Фильтрация словаря по значению ключа в суб словарях с UISearchBar
У меня возникли некоторые трудности, реализующий SearchBar для довольно сложной Tableview. TableView имеет несколько разделов, две строки текста и изображение. Все данные загружаются из plist, а затем помещаются в секции по начальной букве значения для клавиши «Name». NSLog возвращает следующий за мой основной словарь «sectionedDictionaryByFirstLetter»:
sectionedDictionaryByFirstLetter:{
B = (
{
Name = "B...A Name Starting with B";
Image = "ImageName1.png";
Text = "Some Text";
}
);
C = (
{
Name = "C...A Name Starting with C";
Image = "ImageName2.png";
Text = "Some Text";
}
);
N = (
{
Name = "N1...A Name Starting with N";
Image = "ImageName3.png";
Text = "Some Text";
},
{
Name = "N2...A Name Starting with N";
Image = "ImageName4.png";
Text = "Some Text";
},
{
Name = "N3...A Name Starting with N";
Image = "ImageName5.png";
Text = "Some Text";
}
);
}
Я хочу, чтобы фильтровать вложенные словари от значения ключа «Name». Может ли кто-нибудь порекомендовать либо как это сделать, либо некоторые ресурсы для обучения? Я слежу за примером в «Начало разработки iPhone 3», но не смог перевести его в свою ситуацию. Таким образом, если пользователь введет «с N» в строке поиска, я хотел бы, чтобы новый словарь, чтобы выглядеть следующим образом:
filteredSectionedDictionaryByFirstLetter:{
N = (
{
Name = "N1...A Name Starting with N";
Image = "ImageName3.png";
Text = "Some Text";
},
{
Name = "N2...A Name Starting with N";
Image = "ImageName4.png";
Text = "Some Text";
},
{
Name = "N3...A Name Starting with N";
Image = "ImageName5.png";
Text = "Some Text";
}
);
}
Просто чтобы прояснить, я мой SearchBar установлен в представлении, я просто с проблема делает его функциональным. В настоящее время я использую собственный метод, называемый - (void) handleSearchForTerm: (NSString *) searchTerm из примера в книге.
Спасибо за помощь!
Общая информация о составе.
sectionedDictionaryByFirstLetter
Key Value
B Array of Dictionaries with Names beginning with B
....
C Array of Dictionaries with Names beginning with C
...
N Array of Dictionaries with Names beginning with N
Item 1 Dictionary 1
Item 2 Dictionary 2
Item 3 Dictionary 3
Dictionary 3
{
Name = "N3...A Name Starting with N";
Image = "ImageName5.png";
Text = "Some Text";
}
Надеюсь, это поможет. Я все еще отчаянно ищу ответ на эту проблему.
По существу, есть первичный словарь, у которого есть ключи, это первые буквы элементов, которые он содержит. Внутри каждой первой буквы имеется массив словарей, которые имеют значение для своего «имени», который начинается с этой буквы.
См. Мой ответ, но вы не хотите использовать для этого список dicts. Вы хотите создать подкласс NSObject, и синтаксис не будет таким ужасным. –