在字典数组中搜索字典值

时间:2011-07-13 16:03:10

标签: objective-c

我正在尝试搜索一系列字典。每个字典都有不同的键和值,如Name,Age和Joindate。

我根据以下代码的教程进行搜索:

- (void) searchTableView {

NSString *searchText = searchBar.text;
NSMutableArray *searchArray = [[NSMutableArray alloc] init];

for (NSDictionary *dictionary in listOfItems)
{
    NSArray *array = [dictionary valueForKey:@"Name"];
    [searchArray addObjectsFromArray:array];
}

for (NSString *sTemp in searchArray)
{
    NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];

    if (titleResultsRange.length != 0)
        [copyListOfItems addObject:sTemp];
}

[searchArray release];
searchArray = nil; }

搜索顺利,数据显示正确。

问题是,当我选择其中一个结果时,它会指向错误的位置。

以下是选定行如何定向到详细视图:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSString *selectedName = nil;

    if(searching) 

    selectedName = [copyListOfItems objectAtIndex:indexPath.row];

    else {

        selectedApp = [[dao libraryItemAtIndex:indexPath.row] valueForKey:@"Name"];      
    }

 [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];

DetailViewController *controller = [[DetailViewController alloc] initWithAppData:[dao libraryItemAtIndex:indexPath.row] nibName:@"DetailViewController" bundle:[NSBundle mainBundle]];

controller.selectedName = selectedName;

    [self.navigationController pushViewController:controller animated:YES];
    [controller release];  
    [DetailViewController release];

}

我需要一种指向正确位置的方法。

如果我能在主阵列中找到我正在寻找的名称的索引,那就太棒了。

如果你能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:-1)

你可以继承UITableViewCell并添加一些字段来存储你在哪里找到单元格中显示的内容(比如在哪个字典和数组中的什么位置)。然后,当单击单元格时,您将能够轻松获得该功能。