我在工作开始时实际需要的是制作一个包含内部属性的plist文件。因为,正如我所发现的那样(也许我找不到并且你知道一个更好的解决方案,而不是让我知道),没有简单的编程plist文件创建这样的东西,我写了一个测试plist文件,看了什么是内部和使用简单的文件创建者类,写了这样的事情:
class PlistCreator{
init(nameOfFile : String){
var path = "\(NSHomeDirectory())/Documents/XCODE/getPDBInfo/DATA_PDB/cifGraphRed/\(nameOfFile).plist"
let fileManager = NSFileManager.defaultManager()
let text = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n\t<plist version=\"1.0\">\n\t\t<dict><key>017</key>\n<dict\n<key>O26</key>\n<dict>\n<key>Atoms</key>\n<key>AtomsRed</key>\n<key>Connections</key>\n<array/>\n<key>Ring</key>\n<array/>\n</dict>\n</dict>\n</dict>\n</plist>"
let dataText = (text as NSString).dataUsingEncoding(NSUTF8StringEncoding)
fileManager.createFileAtPath(path, contents: dataText, attributes: nil)
}
}
我还需要以编程方式创建文件,因为我需要数千个这样的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">
<dict>
<key>017</key>
<dict>
<key>O26</key>
<dict>
<key>AtomsList</key>
<array/>
<key>Connections</key>
<array/>
<key>Ring</key>
<array/>
</dict>
</dict>
数组不在项目中,它在外面,如:
User/Documents/Files/Data/plist#2587.plist
我现在可以看到两个解决方案:1)必须有一些方法可以使用所有这些嵌套的pathes并在所选集合中写入数据; 2)当我使用任何文本文件时,我应该使用plist,在这种情况下应该有一种方法可以在所选的文件行之间进行编写。