【发布时间】:2009-05-14 16:37:42
【问题描述】:
我需要按 Key 值重新排序 plist(字典数组)。
在此示例内容中,我想按键名称 (Matt, Joe) 的值排序:
<dict>
<key>Name</key>
<string>Matt</string>
<key>Details</key>
<string>Me</string>
</dict>
<dict>
<key>Name</key>
<string>Joe</string>
<key>Details</key>
<string>You</string>
</dict>
有没有简单的方法?我不想每次运行应用程序时都在代码中这样做,我只想对数据文件进行。
有什么想法吗?
乐于使用任何工具来完成这项工作:命令行上用于排序的忍者参数、plist 编辑器、文本编辑器或其他任何工具。
【问题讨论】:
-
数组将按顺序存储,因此将键本身存储为单独的有序数组。每当您从字典中添加或删除键时,对键数组执行相同操作并重新排序,然后再将 plist 写回磁盘。
-
如果我要那样做,如何获取有序数组中的键?
-
将每个字典中 name 的所有值添加到一个可变数组中,然后在数组上调用 sortedArrayUsingSelector:@selector(compare:) 。这将为您提供一个新的、排序的名称键数组。
标签: iphone cocoa sorting plist nsdictionary