我需要创建一个包含6条记录的xml .plist,其中记录5是来自用户的输入字符串,其余的都是固定数据。我不确定这样做的最佳方法是什么?看起来它应该很简单,但我没有取得多大成功。
需要编写的数据如下所示:
<?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>AREA51</key>
<dict>
<key>ORIGIN</key>
<data>M45</data>
...(4 more records)...
(USER STRING)
...(1 more record)...
</dict>
</dict>
</plist>
我尝试过一些例子,但我认为它们已经过时而且不符合规范。谢谢!
答案 0 :(得分:5)
我不知道这个教程怎么可能会过时,你这样做的方式在十年之内没有改变。创建字典,并使用-writeToFile:atomically:
方法。
NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
// object first...
[NSDictionary dictionaryWithObjectsAndKeys:
@"M45", @"ORIGIN", // object first, then key
... // repeat
nil],
// then key...
@"AREA51",
nil];
[dict writeToFile:path atomically:NO];
(我不知道你是否真的需要原子写作。如果你不确定,可以将它改为YES
。)
答案 1 :(得分:1)
字典 * 中的条目是无序的,因此您不应期望用户的条目位于任何特定位置。相反,您使用密钥来检索数据,因此您可能有:
<dict>
<key>ORIGIN</key>
<data>M45</data>
<key>USERENTRY</key>
<data>Hello world!</data>
...
</dict>
或者可能是:
<dict>
<key>USERENTRY</key>
<data>Hello world!</data>
<key>ORIGIN</key>
<data>M45</data>
...
</dict>
或其他一些订单。 Deitrich Epp编写plist的说明应该是编写数据所需的全部内容。只要意识到你可以使用任何对象来获取数据,包括用户的字符串。