【发布时间】:2020-11-25 04:00:16
【问题描述】:
我正在读取和写入 plist,但两个进程之一无法正常工作。
阅读
var data: [String: Int] = [:]
if let url = Bundle.main.url(forResource: "Calendar", withExtension: "plist") {
do {
print("url: \(url)")
let dataContent = try Data(contentsOf: url)
if let dict = try PropertyListSerialization.propertyList(from: dataContent, format: nil) as? [String: Int] {
data = dict
}
} catch {
print(error)
}
}
url 此处未打印,这意味着Bundle.main.url 无法找到Calendar.plist 或未正确保存。
写作
do {
let path = try FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: true).appendingPathComponent("Calendar.plist")
let plistData = try PropertyListSerialization.data(fromPropertyList: data, format: .xml, options: 0)
try plistData.write(to: path)
} catch {
print(error)
}
data 暂定为["test": 1]。
【问题讨论】:
标签: ios swift plist nsfilemanager