配置表的每个单元的indexPath

时间:2014-03-30 14:47:24

标签: ios objective-c uitableview

UITableView中,我使用以下命令设置每个单元格的名称:

cell.textLabel.text = [list objectAtIndex:indexPath.row];

变量list只不过是一个只包含来自数据库的特定对象描述的数组。

我使用另一个名为idt的变量(也是一个数组),其中包含变量id的每个项目的每个list

不幸的是我需要编辑indexPath,因为它包含数组idt中包含的相同值,因为最终我在代码中发现了问题。有人可以帮我了解如何编辑变量idt的indexPath?

变量列表包含以下值:

  

值01

     

值02

     

值03

使用命令时自动:

cell.textLabel.text = [list objectAtIndex:indexPath.row];

它会自动为此单元格创建一个句柄,并且可视化此标识符可以使用didSelectRowAtIndexPath方法中的NSLog命令:

NSLog(@"%zd",indexPath.row);

使用此命令返回以下值:

  

如果我选择值01控制台日志,则显示0

     

如果我选择值02控制台日志,则显示1

     

如果我选择Value 03控制台log log me 2

现在,如果我输入idt变量,它可能看起来像这样:

  

如果我选择值01控制台日志,请显示7

     

如果我选择值02控制台日志,则显示12

     

如果我选择Value 03控制台日志,请显示20

对于数据库,值01属于id 7,值02到id 12,值03到id 20,对我来说会更容易。

1 个答案:

答案 0 :(得分:3)

每个列表项都有一个值和一个ID,那么你不应该有单独的数组,因为它们是对的值。您想要NSArray使用NSDictionaries

例如:

list = @[
         @{@"id" :@"7", @"value":@"value 01"},
         @{@"id" :@"12", @"value":@"value 02"},
         @{@"id" :@"20", @"value":@"value 03"},
         ];

然后在单元格上显示文本标签:

NSString *ID  = [[list objectAtIndex:indexPath.row]objectForKey:@"id"];
NSString *value = [[list objectAtIndex:indexPath.row]objectForKey:@"value"];

cell.textLabel.text = value;

如果你想在日志中测试它:

 NSLog(@"If I select %@ console log will print %@", value, ID);

输出日志:

If I select value 01 console log will print 7
If I select value 02 console log will print 12
If I select value 03 console log will print 20