Я читаю и пишу в 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]
ориентировочно.