【问题标题】:Moving through a NSDictionary getting objects that you do not know the 'Key' for? IOS通过 NSDictionary 获取您不知道“键”的对象? IOS
【发布时间】:2012-07-05 09:15:09
【问题描述】:
我有一个从网络服务获得的 NSDictionary。此字典中的每个对象都包含一个数组。我不知道 NSDictionary 中会有多少对象,也不知道每个对象的“键”是什么。我只知道它会是一个数组字典。
如何通过字典将对象的名称及其内容读取到数组中?
到目前为止,我与字典的所有交易都可以使用
[anotherDict objectForKey:@"accounts"]
因为我知道“钥匙”;提前期待。
非常感谢,
-代码
【问题讨论】:
标签:
iphone
objective-c
ios
xcode
【解决方案1】:
NSDictionary 从 iOS 4.0 开始有方法:enumerateKeysAndObjectsUsingBlock:。这很简单,它接收一个块对象来操作字典中的条目。
一个例子:
[anotherDict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
NSArray *arr = obj;
//Do something
}
【解决方案2】:
NSDictionary 类有一个实例方法 -allKeys,它为所有键返回一个 NSArray 和 NSStrings。
【解决方案3】:
最简单的方法是通过 allKeys 实例方法获取 allKeys
NSArray *keys = [myDictionary allKeys];
然后为每个键迭代字典。
for (NSString *k in keys)
{
id object = [myDictionary objectForKey:k];
}
您还可以按顺序获取键,就好像值是使用排序的一样
NSArray *sortedKeys = [myDictionary keysSortedByValueUsingSelector:@selector(compare:)];
【解决方案4】:
你可以这样做:
NSArray * keys = [dictionnary allKeys];
for (NSString *key in keys) {
NSArray *tmp = [dictionnary objectForKey:key];
}
【解决方案5】:
我不是专业人士,但我知道您可以获得字典的所有键
NSLog(@"%@",[Your_Dictionary allKeys]);
这将给出该字典中的键数组。