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

如果您右键单击 plist 文件,您应该能够在文本编辑器中打开它。如果这样做,您可以复制并粘贴您的格式吗?或者你的意思是你有太多的数据要手写,而你正试图用脚本来写?

于 2012-06-22T01:27:29.400 回答
0

您的代码很混乱...您有一个名为 的变量array,但它被声明为字典。从您的属性列表示例中,您似乎想要一个外部级别的数组,因此您的代码应该使用NSArrayor NSMutableArray

于 2012-06-22T01:56:50.150 回答