在 foreach 中从 NSDictionary 获取值?
Posted
技术标签:
【中文标题】在 foreach 中从 NSDictionary 获取值?【英文标题】:Getting values from NSDictionary in foreach? 【发布时间】:2012-11-14 06:03:50 【问题描述】:我有一个视图,上面有 tableviewcells,加载了不同的“键值”作为标签。当我点击一个时,我会打开另一个视图。但是在这里,我只为那个键传递字典,例如我会传递这个:
key = Budget;
value =
"2012 Budget Report" =
active = 0;
author = "xxxxx xxxxxx";
date = "October 27, 2012";
description = "Example";
dl = "53 downloads";
email = "xxx@xxxxx.com";
ext = DOCX;
fortest = "Tuesday, November 6";
id = 5;
subject = budget;
testdate = "Tuesday, November 6";
title = "Budget spreadSheet";
;
"2005 - 2008 Budget Report" =
active = 0;
author = "xxxxxxx xxxxx";
date = "November 3, 2012";
description = "Example";
dl = "18 downloads";
email = "xxxxx@xxxxx.com";
ext = DOCX;
title = "Budget report";
;
;
如何获得这些值?谢谢。
请注意:值数组中的标题可能会更改...可以添加更多,可以删除一个,所以我需要一个通用的解决方案。
【问题讨论】:
是数组 = [字典 valueForKey:Budget];可能吗? 【参考方案1】:考虑到您传递的字典保存在iDictionary
。
NSDictionary *iDictionary // Input Dictionary;
NSDictionary *theValues = [NSDictionary dictionaryWithDictionary:[iDictionary valueForKey:@"value"]];
for (NSString *aKey in [theValues allKeys])
NSDictionary *aValue = [theValues valueForKey:aKey];
NSLog(@"Key : %@", aKey);
NSLog(@"Value : %@", aValue);
// Extract individual values
NSLog(@"Author : %@", [aValue objectForKey:@"author"]);
// If the titles are dynamic
for (NSString *aSubKey in [aValue allKeys])
NSString *aSubValue = [aValue objectForKey:aSubKey];
NSLog(@"SubKey : %@, SubValue = %@", aSubKey, aSubValue);
【讨论】:
还应该检查此页面上的答案,以便于实现易于理解。 ***.com/questions/2143372/…【参考方案2】:NSDictionary *jsonDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:kNilOptions error:&error];
NSArray *arrBudget= [jsonDictionary objectForKey:@"Budget"];
所以这里arrBudget
将包含所有值并且您可以将数组传递到详细视图。
【讨论】:
【参考方案3】:如果键和对象在“foreach”逻辑中有用的另一种方法:
NSDictionary *dict = @
@"key1": @"value1",
@"key2": @"value2",
@"key3": @"value3",
;
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop)
NSLog(@"Your key : %@", key);
NSLog(@"Your value : %@", [obj description]);
// do something...
];
【讨论】:
以上是关于在 foreach 中从 NSDictionary 获取值?的主要内容,如果未能解决你的问题,请参考以下文章
在 Objective C 中从 NSDictionary 对象创建 URL 查询参数
用于创建 NSDictionary 的 Objective-C foreach 不起作用
如何在 php foreach 循环中从 json obj 获取值
如何在 PHP/Eclipse 中对 foreach 循环中从数组中拉出的自定义对象进行智能感知?