要插入的NSString的内容

时间:2012-01-02 00:30:36

标签: iphone xcode4 ios4

这是我对“关于NSString的plist内容”的问题的后续问题。如何将下面显示的NSString连接到plist文件中。到目前为止我用google搜索的内容是,如果不将NSString放在NSArray / NSdictonary中,就无法做到这一点。但问题是,如果我有一个NSString,其内容如下所示。

<?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>a.infoKey</key>
    <array>
        <string>a</string>
        <string>a</string>
        <string>a</string>
        <string></string>
    </array>
    <key>a.titleKey</key>
    <string>a</string>
    <key>r.infoKey</key>
    <array>
        <string>r</string>
        <string>r</string>
        <string>r</string>
        <string></string>
    </array>
    <key>r.titleKey</key>
    <string>r</string>
</dict>
</plist>

如果我将上面的字符串添加到NSArray然后创建一个新的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">
<array>
    <string>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"&gt;
&lt;plist version="1.0"&gt;
&lt;dict&gt;
    &lt;key&gt;a.infoKey&lt;/key&gt;
    &lt;array&gt;
        &lt;string&gt;a&lt;/string&gt;
        &lt;string&gt;a&lt;/string&gt;
        &lt;string&gt;a&lt;/string&gt;
        &lt;string&gt;&lt;/string&gt;
    &lt;/array&gt;
    &lt;key&gt;a.titleKey&lt;/key&gt;
    &lt;string&gt;a&lt;/string&gt;
    &lt;key&gt;r.infoKey&lt;/key&gt;
    &lt;array&gt;
        &lt;string&gt;r&lt;/string&gt;
        &lt;string&gt;r&lt;/string&gt;
        &lt;string&gt;r&lt;/string&gt;
        &lt;string&gt;&lt;/string&gt;
    &lt;/array&gt;
    &lt;key&gt;r.titleKey&lt;/key&gt;
    &lt;string&gt;r&lt;/string&gt;
&lt;/dict&gt;
&lt;/plist&gt;
</string>
</array>
</plist>

我希望将确切的字符串(最上面的字符串)添加到新的plist文件中。

2 个答案:

答案 0 :(得分:1)

只需使用[something].plist

将其保存到名为-[NSString writeToFile:atomically:encoding:error:]的文件的文件中即可

答案 1 :(得分:1)

您拥有的字符串已经正确格式化的plist。如果你把那个字符串放到另一个plist对象中,你就会得到你所看到的东西,这是一个逃脱的plist-in-a-plist,这不是你想要的。

所以你需要做的就是把你的字符串直接保存为文件。有很多方法可以做到这一点,但最简单的方法是使用NSString的内置功能将自己写入文件,如下所示:

[myPlistString writeToFile:somePath atomically:YES encoding:NSUTF8StringEncoding error:NULL];

请注意,编码类型应为UTF8。这是plist字符串自己的标题中反映的内容,因此这是您应该使用的编码类型。 (如果你在生产代码中这样做,显然也使用error param。)

保存到文件后(在本例中为somePath),您没有说明需要做什么,但可以使用{{1}将其直接加载到对象层次结构中} class。