0Pricing
Swift Academy · Lektion

App-Sandbox-Verzeichnisse

Verwenden Sie Documents, Caches und temporäre Speicherorte.

App-Sandbox-Verzeichnisse ist eine kostenlose Swift Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Swift Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

App-Sandbox-Verzeichnisse

Apps laufen in einer Sandbox: Sie dürfen nur in ihren eigenen Container schreiben. Für Dokumente, Caches und temporäre Dateien gibt es standardisierte Ordner.

Dokumentenverzeichnis finden

FileManager.urls(for:in:) gibt die URLs für ein bekanntes Verzeichnis zurück. .documentDirectory enthält Benutzerdaten, die gesichert werden sollten.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")

Datei-URLs erstellen

Hängen Sie einen Dateinamen an die Verzeichnis-URL an, um den vollständigen Pfad für Ihre eigenen Dateien zu erhalten.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)

Das Caches-Verzeichnis

.cachesDirectory speichert Daten, die Sie erneut erzeugen können. Das System kann diesen Inhalt bei knappem Speicher löschen. Speichern Sie hier daher niemals unersetzliche Daten.

import Foundation

let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")

Das temporäre Verzeichnis

FileManager.default.temporaryDirectory stellt einen Arbeitsbereich für kurzlebige Dateien bereit, die Sie selbst bereinigen sollten.

import Foundation

let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")

Documents, Caches und tmp

Verwenden Sie Documents für von Benutzern erstellte Daten (die gesichert werden), Caches für reproduzierbare Daten und tmp für kurzzeitig benötigte Dateien.

import Foundation

// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")

Application Support

.applicationSupportDirectory enthält von der App verwaltete, nicht direkt für Benutzer bestimmte Daten, beispielsweise Datenbanken. Oft erstellen Sie dieses Verzeichnis beim ersten Start.

import Foundation

let fm = FileManager.default
let support = fm.urls(for: .applicationSupportDirectory, in: .userDomainMask).first!
try? fm.createDirectory(at: support, withIntermediateDirectories: true)
print("Ensured Application Support exists")

In Documents speichern

Kombinieren Sie die Verzeichnis-URL mit einem Schreibaufruf, um Benutzerdaten innerhalb der Sandbox dauerhaft zu speichern.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
try? "hello".write(to: url, atomically: true, encoding: .utf8)
print("Saved into Documents")

Daten wieder einlesen

Lesen Sie Sandbox-Dateien wie jede Datei-URL ein, da der Pfad innerhalb des Containers vollständig gültig ist.

import Foundation

let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let url = docs.appendingPathComponent("note.txt")
if let text = try? String(contentsOf: url, encoding: .utf8) {
    print(text)
}

Von der Sicherung ausschließen

Setzen Sie bei großen, erneut erzeugbaren Dateien den Ressourcenwert isExcludedFromBackup, damit sie iCloud-Backups nicht unnötig vergrößern.

import Foundation

var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")

Warum Sandboxing wichtig ist

Sandbox-Pfade unterscheiden sich je nach Installation und Gerät. Codieren Sie sie daher niemals fest. Ermitteln Sie Verzeichnisse immer zur Laufzeit mit FileManager.

import Foundation

// Never hardcode /var/mobile/... — resolve at runtime instead.
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Resolved Documents dynamically: \(!docs.path.isEmpty)")

Schnelltest

In welchem Verzeichnis sollten Benutzerdaten gespeichert werden, die gesichert werden müssen?

Zusammenfassung

Apps speichern Dateien in Sandbox-Ordnern, die über FileManager.urls(for:in:) ermittelt werden: Documents für gesicherte Benutzerdaten, Caches für erneut erzeugbare Daten und tmp für vorübergehende Dateien sowie Application Support. Ermitteln Sie Pfade zur Laufzeit und codieren Sie sie niemals fest. Damit ist der Kurs zur Datei-Ein-/Ausgabe abgeschlossen.

Häufig gestellte Fragen

Ist die Lektion „App-Sandbox-Verzeichnisse“ kostenlos?

Ja — der vollständige Text von „App-Sandbox-Verzeichnisse“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Swift Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Swift Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „App-Sandbox-Verzeichnisse“?

Verwenden Sie Documents, Caches und temporäre Speicherorte. Du übst Swift Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Swift Academy zu starten?

Keine Vorkenntnisse erforderlich. Swift Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „App-Sandbox-Verzeichnisse“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Swift Academy-Lektion Code schreiben und ausführen?

Ja. Jede Swift Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. URLs und Dateipfade
  2. Daten lesen und schreiben
  3. Verzeichnisse verwalten
  4. App-Sandbox-Verzeichnisse
← Zurück zu Swift Academy