App-Sandbox-mapper
Brug Documents, Caches og midlertidige placeringer.
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.
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
- URLs og filstier
- Læsning og skrivning af data
- Håndtering af mapper
- App-Sandbox-mapper