Appens sandbox-kataloger
Använd Documents, Caches och temporära platser.
Appens sandbox-kataloger är en gratis lektion i Swift Academy på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för Swift Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Swift Academy innehåller totalt 4 lektioner.
Appens sandlådekataloger
Appar körs i en sandlåda: de får bara skriva i sin egen container. Det finns standardmappar för dokument, cachelagring och temporära filer.
Hitta dokumentkatalogen
FileManager.urls(for:in:) returnerar URL:erna för en känd katalog. .documentDirectory innehåller användardata som bör säkerhetskopieras.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")Skapa fil-URL:er
Lägg till ett filnamn i katalogens URL för att få en fullständig sökväg till dina egna 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)Cachekatalogen
.cachesDirectory lagrar data som du kan återskapa. Systemet kan rensa den när diskutrymmet börjar ta slut, så spara aldrig data som inte går att ersätta här.
import Foundation
let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")Den temporära katalogen
FileManager.default.temporaryDirectory ger dig ett tillfälligt utrymme för kortlivade filer som du själv bör rensa bort.
import Foundation
let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")Dokument, cache och temporära filer
Använd Documents för användarskapad data (som säkerhetskopieras), Caches för återskapningsbar data och tmp för filer som kan kastas bort.
import Foundation
// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")Application Support
.applicationSupportDirectory innehåller apphanterad data som inte är direkt synlig för användaren, till exempel databaser. Du skapar ofta katalogen vid den första starten.
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")Spara i Documents
Kombinera katalogens URL med ett skrivanrop för att spara användardata i sandlådan.
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äsa tillbaka
Läs sandlådefiler på samma sätt som alla andra filer via en URL, eftersom sökvägen är helt giltig i containern.
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)
}Uteslut från säkerhetskopiering
Ange resursvärdet isExcludedFromBackup för stora återskapningsbara filer så att de inte tar upp onödigt mycket plats i iCloud-säkerhetskopior.
import Foundation
var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")Varför sandlådan är viktig
Sandlådesökvägar skiljer sig åt mellan installationer och enheter, så hårdkoda dem aldrig. Hämta alltid katalogerna vid körning 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)")Snabb kontroll
Vilken katalog ska innehålla användardata som måste säkerhetskopieras?
Sammanfattning
Appar lagrar filer i sandlådemappar som hämtas via FileManager.urls(for:in:): Documents för säkerhetskopierad användardata, Caches för återskapningsbar data, tmp för temporära filer samt Application Support. Hämta sökvägarna vid körning och hårdkoda dem aldrig. Därmed är kursen om fil-I/O klar.
Lär dig Swift med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 122
- Lektioner
- 409
Vanliga frågor
Är lektionen ”Appens sandbox-kataloger” gratis?
Ja – du kan läsa vilka 3 lektioner som helst i lärvägen Swift Academy, inklusive ”Appens sandbox-kataloger”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i Swift Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Appens sandbox-kataloger”?
Använd Documents, Caches och temporära platser. Ni övar på Swift Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Swift Academy?
Du behöver inga förkunskaper. Utbildningen i Swift Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Appens sandbox-kataloger”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Swift Academy-lektionen?
Ja. Varje Swift Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- URL:er och filsökvägar
- Läsa och skriva data
- Hantera kataloger
- Appens sandbox-kataloger