如何控制字典或plist项目迭代的顺序?如何控制从plist项目创建的字典的迭代顺序?
我有一个plist 65项。每个项目是一个包含三个项目的词典,一个数字(索引)以及两个图像名称的字符串。 plist中看起来是这样的:
<key>Item 1</key>
<dict>
<key>index</key>
<integer>0</integer>
<key>thumb</key>
<string>001_item01.png</string>
<key>pdf</key>
<string>001_item01</string>
</dict>
<key>Item 2</key>
<dict>
<key>index</key>
<integer>1</integer>
<key>thumb</key>
<string>002_item02.png</string>
<key>pdf</key>
<string>002_item02</string>
</dict>
等等...
我可以建立从作为下面的plist字典,但我还没有想出如何确定顺序。我需要按照项目编号或索引顺序拖动每个项目。
NSDictionary * myDict = [[NSDictionary alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Items" ofType:@"plist"]];
事实上,当我重复,顺序是随机看似:
for(id key in myDict)
NSLog(@"key=%@ value=%@", key, [myDict objectForKey:key]);
2013-04-27 18:12:52.576 dicTest[47865:c07] 007_item07.png
2013-04-27 18:12:52.577 dicTest[47865:c07] 052_item52.png
2013-04-27 18:12:52.577 dicTest[47865:c07] 045_item45.png
2013-04-27 18:12:52.577 dicTest[47865:c07] 038_item38.png
2013-04-27 18:12:52.578 dicTest[47865:c07] 010_item10.png
2013-04-27 18:12:52.578 dicTest[47865:c07] 008_item08.png
2013-04-27 18:12:52.578 dicTest[47865:c07] 046_item46.png
2013-04-27 18:12:52.579 dicTest[47865:c07] 009_item09.png
试图抓住为了项目(字典)基于索引:
NSDictionary * dictionary = [myDict objectForKey:[myDict.allKeys objectAtIndex:i]];
谢谢,是的,我明白了。我想我可以很容易地弄清楚如何实现你的第一个建议,这很好,但我试图弄清楚如何使用每个子字典项目的索引项来确定顺序。有没有简单的方法来解释?看到我的问题底部我正在使用的代码,但显然不工作。 – Mrwolfy 2013-04-27 11:43:27
@Mrwolfy:查看更新。 – 2013-04-27 11:56:22
sortedArrayUsingComparator – Mrwolfy 2013-04-27 12:15:59