【问题标题】:How to sort a Plist properly?如何正确排序 Plist?
【发布时间】:2012-02-01 21:12:48
【问题描述】:

嗯,我做了一个小游戏,游戏结束时给我,3个数据。

分数、硬币和等级。为此,我添加了排名。 (目前是手动完成的,直到我弄清楚如何根据分数更改排名)

所以,这里是 Plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"         "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>entry1</key>
<dict>
    <key>rank</key>
    <string>1</string>
    <key>level</key>
    <string>9</string>
    <key>score</key>
    <string>1999</string>
    <key>coins</key>
    <string>764</string>
</dict>
<key>entry2</key>
<dict>
    <key>rank</key>
    <string>2</string>
    <key>level</key>
    <string>8</string>
    <key>score</key>
    <string>1799</string>
    <key>coins</key>
    <string>375</string>
</dict>
<key>entry3</key>
<dict>
    <key>rank</key>
    <string>3</string>
    <key>level</key>
    <string>6</string>
    <key>score</key>
    <string>1599</string>
    <key>coins</key>
    <string>894</string>
</dict>
<key>entry4</key>
<dict>
    <key>rank</key>
    <string>4</string>
    <key>level</key>
    <string>3</string>
    <key>score</key>
    <string>799</string>
    <key>coins</key>
    <string>523</string>
</dict>
</dict>
</plist>

我希望能够按排名、硬币或级别对高分面板进行排序。

我已经尝试了很多方法来实现它,但没有什么能达到我想要的效果。

所以如果有人能给我一些建议,我将非常感激。

提前致谢。

【问题讨论】:

    标签: iphone sorting nsarray plist nsdictionary


    【解决方案1】:

    属性列表是存储中数据的格式。要对其进行排序,您应该:

    1. 将数据读入适当的结构。
    2. 对结构中的数据进行排序。
    3. 将结构写回属性列表。

    使用适当的结构很重要。属性列表支持两种容器对象:数组和字典。数组是有序列表;字典是键/值对的无序列表。看起来您现在正在使用字典,其中的键指示顺序。您应该更改存储方案以改用数组。然后您可以根据分数对数组进行排序并将其写入文件。

    【讨论】:

    • 好的。但是,如果这“只是”一个数组,如何将分数与硬币或级别等联系起来呢?我的意思是,当我想取回一个数据时,我需要一个值,但所有其他链接到的值。
    • @user1183716:您已经拥有包含所有关于高分的信息的个人词典。只需按照您希望它们的顺序将它们存储在一个数组中(即按分数或硬币等排序)。
    • @user1183716 每个游戏仍然应该是一个字典,但你需要一个字典的数组,而不是像现在这样的字典。您展示的示例 plist 在顶层有一个字典,其中包含键“entry1”、“entry2”、“entry3”......并且每个键的值都是另一个字典。将所有这些字典放入一个数组中,根据各自的分数对数组进行排序,然后写入文件。完成。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    相关资源
    最近更新 更多