1

我有一个字典定义为

@property (retain, nonatomic) NSMutableDictionary *MyDictionary;

我试图得到这样的输出

NSLog(@"%@",MyDictionary);

这是我得到的输出

{ Category=(
        {
        code=12; Name="John Smith"
        },
        {
        code=21; Name="Bobby Smith"
        },
        {
        code=31; Name="Smith Jones"
        } );

Detail = {
        code=1;
        Text="Developer"
        };
}

我的表格单元格中填充了姓名、John Smith、Bobby Smith 等。我需要的是在单击特定单元格时获取代码。例如,如果我点击名字 John Smith 我应该得到值 12

到目前为止,这是我的代码

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

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    NSArray *allNames = [MyDictionary allValues];
    NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"Name == %@", cell.textLabel.text];
    NSArray *filteredNames = [allNames filteredArrayUsingPredicate:resultPredicate];
    NSLog(@"%@",filteredNames);

}

filtersNames 不包含任何过滤对象。如何获得代码的价值?

4

3 回答 3

1

编辑:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{    
   NSString *getCodeValue = [[[myDic objectForKey:@"Category"] objectAtIndex:indexPath.row] objectForKey:@"code"]
   NSLog (@"%@", getCodeValue)      
}

didSelectRowAtIndexPath在方法中使用此代码

于 2013-09-02T12:10:59.930 回答
0

将代码分配给单元格的标签并在您的 didSelectRowAtIndexPath 中使用它

于 2013-09-02T12:58:45.120 回答
0

我建议创建一个 UITableViewCell 的子类,它只具有一个标签和一个整数值作为属性。然后初始化如下:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CustomCellClassNameHere"];
  cell.codeValue = [[myDic objectForKey:@"Category"] objectAtIndex:indexPath.row];
}

添加以下代码,以便在触摸单元格时检索代码:

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
  NSString *codeValue = cell.codeValue;
  NSLog(@"%@", codeValue);
}

正如上面评论中提到的,确保你的 NSDictionary 被正确初始化:

NSMutableDictionary myDic = [[NSMutableDictionary alloc] init]; //This can be replaced with however you're getting your code values.

那你应该好好去!应该注意的是,此答​​案中发布的代码没有经过测试,所以如果您有任何问题,请告诉我!

马特

于 2013-09-02T16:01:33.617 回答