2012-02-01 9 views
1

さて、ゲームの最後に3つのデータを与えて少しゲームを作った。Plistを正しくソートするには?

スコア、コイン、およびレベル。これにランクを追加しました。だから、

を(私はスコアに応じてランク#を変更する方法を見つけ出すまで、手動で、現時点では行われている)、ここで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> 

私は並べ替えできるようにしたいと思います階級ごと、硬貨ごと、または階級ごとにパネルを上げます。

私はそれを達成するために多くのことを試しましたが、私が欲しいものは何もありません。

誰かが私にいくつかのヒントを与えることができれば、私は非常に感謝します。

ありがとうございます。

答えて

2

プロパティリストは、ストレージ内のデータの形式です。それをソートするには、次のようにします。

  1. データを適切な構造に読み込みます。
  2. 構造内のデータをソートします。
  3. 構造体をプロパティリストに書き戻します。

適切な構造を使用することが重要です。プロパティリストは、配列と辞書の2種類のコンテナオブジェクトをサポートしています。配列は順序付きのリストです。辞書は、キーと値のペアの順序付けられていないリストです。あなたが今すぐ辞書を使用しているように見え、順序を示すキーがあります。アレイを使用するようにストレージ構成を変更する必要があります。次に、スコアに従って配列をソートし、ファイルに書き出すことができます。

+0

大丈夫です。しかし、もしこれが単に「配列」であれば、スコアを、例えばコインやレベルとリンクさせるには? 私は、データを取得したいときは、値が必要ですが、リンクされているすべての値が必要です。 – user1183716

+1

@ user1183716:あなたはすでにハイスコアに関するすべての情報を含む個別の辞書を持っています。それらの配列を、あなたが望む順番で(つまりスコアやコインなどで)配列に格納してください。 – dreamlax

+1

@ user1183716各ゲームはまだ辞書でなければなりませんが、今のような辞書の*辞書*ではなく、辞書の*配列*が必要です。あなたが示したサンプルplistはトップレベルに "entry1"、 "entry2"、 "entry3"というキーを持つ辞書を持っています...これらのキーのそれぞれの値は別の辞書です。これらの辞書をすべて配列に入れ、それぞれのスコアに従って配列をソートし、ファイルに書き出します。完了しました。 – Caleb

関連する問題