0

私はドキュメント フォルダの plist ファイルに情報を書き込んでいますが、そこまでの道のりは約 90% です (私はそう思います)。私が書いた情報を正しくフォーマットするための助けが必要です。

この形式でデータを書き込む必要があります。

<plist version="1.0">
<array>
<dict>
    <key>Level</key>
    <string>0</string>
    <key>Top</key>
    <string>0</string>
    <key>Needed</key>
    <string>0</string>
    <key>Passed</key>
    <string>0</string>
</dict>
<dict>
    <key>Level</key>
    <string>1</string>
    <key>Top</key>
    <string>5300</string>
    <key>Needed</key>
    <string>4000</string>
    <key>Passed</key>
    <string>Yes</string>
</dict>
</array>
</plist>

このコードを使用してファイルに書き込みます。

NSMutableDictionary *array = [[NSMutableDictionary alloc]init]; 
[array setObject:field1.text forKey:@"Top"];
[array writeToFile:[self dataFilePath] atomically:YES];

キーを設定して値を入れます。しかし、誰かが上記のplistのように正しくフォーマットするのを手伝ってくれますか?

4

3 に答える 3

1

サンプルコードは次のとおりです。

  NSMutableArray *plistArray = [[ NSMutableArray alloc] initWithContentsOfFile:[self dataFilePath]];
  NSLog(@"plistArray before additon: %@", plistArray);
  for (NSMutableDictionary *dict in plistArray)
  {
    //if you want to search for a record only otherwise remove the if statement
    if ([[dict objectForKey:@"Top"] isEqualToString:@"0"])  //this just an example, modify this per your needed
      [dict setObject:field1.text forKey:@"Top"];  //select which dictionary record to set the Top key
  }
  NSLog(@"plistArray after additon : %@", plistArray);
  [plistArray writeToFile:[self dataFilePath] atomically:YES];
于 2012-06-22T02:22:59.207 に答える
0

あなたのコードは混乱しています... という名前の変数がありますがarray、辞書として宣言されています。プロパティ リストの例から、外部レベルで配列が必要なように見えるため、コードではNSArrayorを使用する必要がありますNSMutableArray

于 2012-06-22T01:56:50.150 に答える
0

plist ファイルを右クリックすると、テキスト エディターで開くことができるはずです。その場合、フォーマットをコピーして貼り付けることはできますか? それとも、手動で書き込むにはデータが多すぎて、スクリプトで書き込もうとしているということですか?

于 2012-06-22T01:27:29.400 に答える