Ich versuche, eine sehr einfache Lese-, Schreib-und Persistenz in einer Textdatei (namens data.txt, und im Hauptprojekt gespeichert) Ordner) in einer einfachen iOS-App. Dies ist nur eine Lernübung.In Textdatei schreiben und Änderung über den App-Neustart in Xcode 8 und Swift 3 beibehalten
Ich kann bereits vorhandenen Text aus data.txt gut lesen. Wenn ich in die Textdatei schreibe und danach davon lese, ist der geschriebene Text da.
Wenn ich jedoch meinen App-Simulator stoppe, verschwindet der geschriebene Text.
Gibt es einen Trick, um Dateien über App-Neustarts hinweg zu archivieren?
ist hier mein Code:
var originalData : String = ""
//read from file
print("reading from data file")
if let path = Bundle.main.path(forResource: "data", ofType: "txt") {
do {
originalData = try String(contentsOfFile: path, encoding: .utf8)
print("originalData = \(originalData)")
}
catch {
print(error)
}
}
//write to file
let newData = "\(originalData), new text"
print("writing to data file")
if let fileURL = Bundle.main.url(forResource: "data", withExtension: "txt") {
do {
try newData.write(to: fileURL, atomically: false, encoding: String.Encoding.utf8)
}
catch let error as NSError {
print("Failed writing to URL: \(fileURL), Error: " + error.localizedDescription)
}
}
//read from file
print("reading from data file again")
if let path = Bundle.main.path(forResource: "data", ofType: "txt") {
do {
let moreData = try String(contentsOfFile: path, encoding: .utf8)
print("moreData = \(moreData)")
}
catch {
print(error)
}
}
Die Ausgabe gedruckt ist:
reading from data file
originalData = Line 1 of data file
writing to data file
reading from data file again
moreData = Line 1 of data file
, new text
Aber dann, wenn ich meine App-Simulator und offene data.txt stoppen, sind die Inhalte nur: Linie 1 Datendatei
Oh, ich wusste nicht, dass es so streng abgesperrt war. Vielen Dank! –