我正在创建一个项目,我坚持从给定值中检索密钥的概念。 我创建了一个tableview,添加了字典值 - 例如" city_names" for key" city_id"。 如果用户选择一个城市,那么我想得到相应的" city_id"为那个城市。
我的表格中有字典
"city":[
{
"id":"1",
"city":"City1"
},
{
"id":"2",
"city":"City2"
},
{
"id":"3",
"city":"musat"
},
{
"id":"4",
"city":"city3"
},
{
"id":"5",
"city":"City 4"
}
]
我更关心的是获得选择城市的儿童词典的相应索引。
提前致谢。
答案 0 :(得分:2)
因此,假设您正在通过其数据源方法填充tableview,并希望在用户选择特定行时引用回模型数据?
在这种情况下,你应该保留一组键和模型字典。然后,您可以使用传递给tableview委托的行从密钥数组中检索密钥,然后从那里获取字典条目的密钥。
这是因为数组具有固定顺序,就像tableview一样,并且您可以按照适合显示的数据的顺序对数组进行排序。字典没有固定的顺序,因此不应该用作模型数据的唯一容器。
这种方法的缺点是您需要维护两个数据结构,因此最好的方法是为模型数据创建自定义类,并使用这些模型对象的单个数组。这种方法还有很多优点。
答案 1 :(得分:2)
试试这个
int index = [[city valueForKey:@"city"] indexOfObject:@"Selected_City"];
NSString *selected_id = [[city valueForKey:@"id"] objectAtIndex:index];
答案 2 :(得分:0)
根据您的描述开启。
我建议您以Array(NSarray)
Dictionaries
的形式制作数据。
并根据此UITableViewCell
填充您的array
。
在didSelectRowAtIndexPath
方法
Dictionaries* dict = [yourArray objectAtIndex:indexPath.row];
NSString * selectedCityId = [dict objectForKey:@"passYourKeyIdentifier"];