我有一个NSDictionaries的嵌套NSDictionary。
我在NSArray *数组中获取字典,然后用for (NSDictionary *frame in array)
我想要的是框架的名称。例如[frame getName],这有什么功能吗?
答案 0 :(得分:4)
如果您的阵列看起来像这样
<array>
<dict>
<key>name</key>
<string>My First Frame</string>
...
</dict>
<dict>
<key>name</key>
<string>My Other Frame</string>
...
</dict>
...
</array>
然后你会用它来得到这个名字:
for (NSDictionary *frame in array) {
NSString *frameName = [frame objectForKey:@"name"];
}
但是,如果您的词典实际上不包含您的框架名称,那么您运气不好(在数组中,元素使用索引存储,而不是使用密钥存储)。
现在,您还提到了上面的“NSDictionaries的嵌套NSDictionaries”。如果您有以下结构,其中名称是外部字典中的键:
<dict>
<key>My First Frame</key>
<dict>
<key>width</key>
<integer>300</integer>
<key>height</key>
<integer>200</integer>
...
</dict>
<key>My Second Frame</key>
<dict>
<key>width</key>
<integer>150</integer>
<key>height</key>
<integer>105</integer>
...
</dict>
...
</dict>
然后你可以用这个:
for (NSString *frameName in [outerDict allKeys]) {
NSDictionary *frame = [outerDict objectForKey:frameName];
// now you have both the key (frameName) and the value (frame) to work with
}
答案 1 :(得分:1)
不完全理解你的问题,你的意思是通过Key
[dict objectForKey:@"key"]
应该得到它。
如果你的意思是有另一个array
存储所有子字典对象,你需要知道根字典中指定子字典的键值:
[[rootDict allKeysForObject:theSpecifySubDictionary] lastObject]
答案 2 :(得分:0)
NSArray *myTemp2Array = [myArray valueForKey:@"Name"];
这将遍历一个数组(包含字典),并在一个漂亮的小数组中返回 @“Name”键的所有值。