0

看来我的问题对任何人来说都不是问题,因为我还没有找到任何关于它的东西。所以这可能不是一个大问题,但对我来说是。

我有这个 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'

任何人都可以向我解释这个错误意味着还是我做错了?!?

4

1 回答 1

0
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'

该错误意味着您通过向NSStringNSDictionary发送消息-objectForKey:来将其视为一个。

于 2010-10-28T15:55:22.257 回答