кажется, что моя проблема не проблема для кого-то из eles, потому что я ничего не знаю об этом. , так что, возможно, это не такая большая проблема, но для меня это так.Поиск NSMutableArray с помощью String и возврат всего сравниваемого массива
У меня есть этот MutableArray, заполненный большим количеством данных из файла XML. -Name -Age -Dress Поиск идет по имени, и фильтрация работает довольно хорошо.
то, что я делаю, это поиск массива с помощью rangeOfString, но который возвращает только String (-Name), а не массив с его содержимым, таким как исходный массив, потому что теперь его только строка.
может кто-нибудь сказать мне, как я выполняю эту
Это мой поиск до сих пор
if ([[self searcher] length] != 0)
{
for (NSString *currentString in [self listOfContent])
{
if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
{
[[self filteredListOfContent] addObject:currentString];
}
поисковое является строка в SearchBar. или есть ли какой-либо другой более эффективный способ или можно найти любую ценность в MutipleArry?!?
Любые идеи и предложения приветствуются
Я изменил код этого
NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in listOfContent)
{
//NSArray *array = [dictionary objectForKey:LNAME];
[searchArray addObject:dictionary];
}
for (NSString *sTemp in searchArray)
{
NSLog(@"array %@", searchArray);
if ([sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch].location != NSNotFound)
[filteredListOfContent addObject:searchArray];
}
журнал показывает, что фильтр работает, но я получаю эту ошибку
2010-10-22 16:18:09.708 TableView[6114:207] -[__NSCFDictionary rangeOfString:options:]: unrecognized selector sent to instance 0x5c3f540
2010-10-22 16:18:09.712 TableView[6114:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFDictionary rangeOfString:options:]: unrecognized selector sent to instance 0x5c3f540'
может кто-нибудь скажите мне, в чем проблема
И все еще не найдено ни одного решения I изменил код для этого:
NSMutableArray *searchArray = [[NSMutableArray alloc] init];
for (NSDictionary *dictionary in contentsList)
{
NSArray *array = [dictionary allValues];
[searchArray addObjectsFromArray:array];
}
for (NSDictionary *dict in searchArray)
{
if ([[dict valueForKey:@"NAME"] rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound) {
NSLog(@"Filter %@", dict);
[searchResults addObject:dict];
}
Теперь у меня есть массив значений, но все еще получаю ошибку
2010-10-28 16:23:46.124 TableViews[8373:207] *** Terminating app due to uncaught exception
'NSInvalidArgumentException', reason: '-[NSCFString objectForKey:]: unrecognized selector sent to instance 0x5a5eb00'
может кто-нибудь объяснить мне WAHT TAHT этой ошибки означает или WAHT я сделал не так?!?
Как вы анализируете XML в свой массив строк? – JeremyP
через NSXMLParser – zim
Без дополнительной информации о структуре массива, XML, который используется для сборки массива, и как вы превращаете этот XML в массив, будет очень сложно дать вам полезные советы. –