Ios 在字典中的键中获取对象值

Ios 在字典中的键中获取对象值,ios,nsdictionary,Ios,Nsdictionary,我有一个从JSON返回的数据填充键值对的字典。我想做的是使用字典填充UITableView 我有这个表的结构: [产品名称] 由[制造商名称] 这意味着密钥是产品名称,值是制造商名称。我需要获取键的名称和值的名称。如何做到这一点?没有for循环也可以吗?如果您的键是动态的json,那么您可以使用 NSArray *keys = [dictionary allkeys]; 然后,在索引路径方法行的表视图单元格中,您可以使用相应的键及其值填充表视图。NSArray*keys=[results a

我有一个从JSON返回的数据填充键值对的字典。我想做的是使用字典填充UITableView

我有这个表的结构:

[产品名称] 由[制造商名称]


这意味着密钥是产品名称,值是制造商名称。我需要获取键的名称和值的名称。如何做到这一点?没有for循环也可以吗?

如果您的键是动态的json,那么您可以使用

 NSArray *keys = [dictionary allkeys];
然后,在索引路径方法行的表视图单元格中,您可以使用相应的键及其值填充表视图。

NSArray*keys=[results allKeys];
NSArray * keys = [results allKeys];

for (int i = 0;i<[keys count];c++){
 NSString* productName = [key objectAtIndex:i];
 NSString* manufacturerName = [results objectForKey:productName];
}

对于(int i=0;i您可以使用
NSDictionary
keyEnumerator
,并为每个键查找值。这可能类似于:

for (NSString *p in dict)
{
    NSString *m = [dict objectForKey:p];
    // do something with (p,m)
}

你不应该担心避免
for
-循环。毕竟,类似
for
循环的事情总会发生在下面的某个地方。

我会使用
enumerateKeysAndObjectsUsingBlock:
方法。下面的代码构建了一个你需要的字符串列表

NSMutableArray *names = [NSMutableArray array];

[dictionary enumerateKeysAndObjectsUsingBlock: ^(NSString *key, NSString *object, BOOL *stop) {
    [names addObject[NSString stringWithFormat:@"%@ By %@",key, object]];
}];

你所说的键名和值名是什么意思?把你的JSON数据放进去,然后告诉我们你想要什么…我离开了我的PC@work。但无论如何,感谢各位发布你的答案。我会尝试写回。我建议使用快速枚举或基于块的枚举,也不要将局部变量的名称大写。这看起来像ng我需要。不幸的是,我现在不在家,无法检查。但只要我可以访问密钥和值以及它们的内容,这就很好。这不起作用。它只打印第一个记录的多种类型。但是它确实获得密钥和值,但它完全不起作用。哦,不,伙计,这不是问题,因为我在你之前修复了它n我的代码。但它仍然不起作用。它只是在每个表行中打印Jane和student的名称。这一定是填充表的独立问题。您可以使用
NSLog(@“%@,%@”,p,m)自己检查这一点
。我向您展示的代码是正确的。也许您可以尝试我的编辑以确保绝对可靠。请告诉我。编辑使用了一种称为“快速枚举”的方法。谢谢,非常感谢。+1实际上,我更愿意使用一个简单的循环从字典中提取,因为它很简单。当在代码中漫游时,这样的块不是那么直观。但是,这可能是最好的解决方案。@Da_吸烟谢谢你。我认为这在一定程度上取决于个人品味和对它们的舒适程度。Mos重要的因素是合理的命名。非常感谢@Carlvaezey提供的解决方案。如果可行,肯定会进行测试和使用。