0
Data.plistというファイルを使用して単純な構造化されていないデータを保存しようとしていますが、このファイルをアプリケーションのルートフォルダに配置しました。このファイルを読み書きするのを簡単にするために、私は以下を作成しましたDataManager struct。それは問題なしでData.plistファイルを読むことができますが、ファイルにデータを書き込むことはできません。どこに問題があるのかわからない、だれかが間違っているかも知れないのだろうか?Swift 3:plistファイルにデータを書き込むことができません
struct DataManager {
static var shared = DataManager()
var dataFilePath: String? {
return Bundle.main.path(forResource: "Data", ofType: "plist")
}
var dict: NSMutableDictionary? {
guard let filePath = self.dataFilePath else { return nil }
return NSMutableDictionary(contentsOfFile: filePath)
}
let fileManager = FileManager.default
fileprivate init() {
guard let path = dataFilePath else { return }
guard fileManager.fileExists(atPath: path) else {
fileManager.createFile(atPath: path, contents: nil, attributes: nil) // create the file
print("created Data.plist file successfully")
return
}
}
func save(_ value: Any, for key: String) -> Bool {
guard let dict = dict else { return false }
dict.setObject(value, forKey: key as NSCopying)
dict.write(toFile: dataFilePath!, atomically: true)
// confirm
let resultDict = NSMutableDictionary(contentsOfFile: dataFilePath!)
print("saving, dict: \(resultDict)") // I can see this is working
return true
}
func delete(key: String) -> Bool {
guard let dict = dict else { return false }
dict.removeObject(forKey: key)
return true
}
func retrieve(for key: String) -> Any? {
guard let dict = dict else { return false }
return dict.object(forKey: key)
}
}
ありがとうございます、ドキュメントディレクトリにありがとうございます。私はただばかです! :D – TonyGW