这是我对“关于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><?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>
</string>
</array>
</plist>
我希望将确切的字符串(最上面的字符串)添加到新的plist文件中。
答案 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。