Swift Academy · Lektion

App-Sandbox-mapper

Brug Documents, Caches og midlertidige placeringer.

Lektion 4 af 413 trin

App-Sandbox-mapper er en gratis Swift Academy-lektion på CoddyKit. Dette er lektion 4 af 4. Du kan læse alle 3 lektioner i dette læringsspor gratis i deres fulde længde — derefter låser CoddyKit PRO alle lektioner op samt praktiske øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Den er en del af læringsforløbet i Swift Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Swift Academy-kurset indeholder 4 lektioner i alt.

Appens sandkassemapper

Apps kører i en sandkasse: de må kun skrive inde i deres egen container. Der findes standardmapper til dokumenter, caches og midlertidige filer.

Find dokumentmappen

FileManager.urls(for:in:) returnerer URL'erne til en kendt mappe. .documentDirectory indeholder brugerdata, der skal sikkerhedskopieres.

import Foundation

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

Opret fil-URL'er

Føj et filnavn til mappens URL for at få en komplet sti til dine egne filer.

import Foundation

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

Cachemappen

.cachesDirectory gemmer data, som du kan generere igen. Systemet kan rydde mappen under pres på diskpladsen, så opbevar aldrig data, der ikke kan erstattes, her.

import Foundation

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

Den midlertidige mappe

FileManager.default.temporaryDirectory giver et arbejdsområde til kortlivede filer, som du selv bør rydde op efter.

import Foundation

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

Dokumenter kontra cache kontra tmp

Brug Dokumenter til brugeroprettede data (der sikkerhedskopieres), Cache til data, der kan genskabes, og tmp til midlertidige filer.

import Foundation

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

Programsupport

.applicationSupportDirectory indeholder data, som appen administrerer, men som ikke vises direkte til brugeren, f.eks. databaser. Du opretter ofte mappen ved første 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")

Gem i Dokumenter

Kombinér mappens URL med et skrivekald for at gemme brugerdata i sandkassen.

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")

Læs data tilbage

Læs sandkassefiler på samme måde som enhver fil-URL, fordi stien er fuldt gyldig i containeren.

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)
}

Udeluk fra sikkerhedskopiering

Angiv ressourceværdien isExcludedFromBackup for store filer, der kan genskabes, så de ikke fylder unødigt i iCloud-sikkerhedskopier.

import Foundation

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

Hvorfor sandkasser er vigtige

Sandkassestier varierer fra installation til installation og fra enhed til enhed, så hardkod dem aldrig. Find altid mapperne under kørsel med 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)")

Hurtigt tjek

Hvilken mappe skal indeholde brugerdata, der skal sikkerhedskopieres?

Opsummering

Apps gemmer filer i sandkassemapper, der findes via FileManager.urls(for:in:): Dokumenter til sikkerhedskopierede brugerdata, Cache til data, der kan genskabes, tmp til midlertidige filer samt Programsupport. Find altid stierne under kørsel, og hardkod dem aldrig. Det afslutter kurset i filinput og -output.

Gratis at komme i gang

Lær Swift med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
122
Lektioner
409

Ofte stillede spørgsmål

Er lektionen “App-Sandbox-mapper” gratis?

Ja — alle 3 lektioner i læringssporet Swift Academy, inklusive “App-Sandbox-mapper”, kan læses gratis i deres fulde længde her på webstedet. Derefter låser CoddyKit PRO alle lektioner op samt interaktive øvelser med en indbygget kodeeditor og en AI-underviser døgnet rundt. Swift Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “App-Sandbox-mapper”?

Brug Documents, Caches og midlertidige placeringer. Du øver dig i Swift Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Swift Academy?

Der kræves ingen tidligere erfaring. Swift Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 4 af 4.

Hvor lang tid tager lektionen “App-Sandbox-mapper”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Swift Academy-lektion?

Ja. Alle Swift Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. URLs og filstier
  2. Læsning og skrivning af data
  3. Håndtering af mapper
  4. App-Sandbox-mapper
← Tilbage til Swift Academy