看来我的问题对任何人来说都不是问题,因为我还没有找到任何关于它的东西。所以这可能不是一个大问题,但对我来说是。
我有这个 MutableArray 填充了来自 XML 文件的大量数据。-Name -Age -Address 搜索名称,到目前为止过滤工作得很好。
我所做的是使用 rangeOfString 搜索数组,但它只返回字符串(-Name),而不是像原始数组一样返回内容的数组,因为它现在只是一个字符串。
谁能告诉我如何做到这一点
这是我到目前为止的搜索
if ([[self searcher] length] != 0)
{
for (NSString *currentString in [self listOfContent])
{
if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound)
{
[[self filteredListOfContent] addObject:currentString];
}
searcher 是 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'
谁能告诉我问题是什么
仍然没有找到解决方案,我将代码更改为:
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'
任何人都可以向我解释这个错误意味着还是我做错了?!?