在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,对我来说会更容易。
答案 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