Katalogi piaskownicy aplikacji
Używanie lokalizacji Documents, Caches i tymczasowych.
Katalogi piaskownicy aplikacji to bezpłatna lekcja Swift Academy na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Swift Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Swift Academy zawiera 4 lekcji w sumie.
Katalogi piaskownicy aplikacji
Aplikacje działają w piaskownicy: mogą zapisywać dane wyłącznie we własnym kontenerze. Dla dokumentów, pamięci podręcznej i plików tymczasowych istnieją standardowe foldery.
Znajdowanie katalogu Documents
FileManager.urls(for:in:) zwraca adresy URL znanego katalogu. .documentDirectory zawiera dane użytkownika, które powinny być uwzględniane w kopiach zapasowych.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
print("Documents path ends correctly: \(docs.lastPathComponent)")Tworzenie adresów URL plików
Dołącz nazwę pliku do adresu URL katalogu, aby uzyskać pełną ścieżkę do własnego pliku.
import Foundation
let fm = FileManager.default
let docs = fm.urls(for: .documentDirectory, in: .userDomainMask).first!
let file = docs.appendingPathComponent("profile.json")
print(file.lastPathComponent)Katalog Caches
.cachesDirectory służy do przechowywania danych, które można ponownie wygenerować. System może je usuwać przy braku miejsca na dysku, dlatego nie należy przechowywać tu danych, których nie można zastąpić.
import Foundation
let fm = FileManager.default
let caches = fm.urls(for: .cachesDirectory, in: .userDomainMask).first!
print("Caches dir name: \(caches.lastPathComponent)")Katalog tymczasowy
FileManager.default.temporaryDirectory udostępnia przestrzeń roboczą na krótkotrwałe pliki, które należy samodzielnie usuwać.
import Foundation
let tmp = FileManager.default.temporaryDirectory
let scratch = tmp.appendingPathComponent("work.tmp")
print("Temp file path ready: \(scratch.lastPathComponent)")Documents a Caches i tmp
Folderu Documents należy używać dla danych utworzonych przez użytkownika (objętych kopią zapasową), folderu Caches dla danych możliwych do odtworzenia, a tmp dla plików przeznaczonych do usunięcia.
import Foundation
// Choose the right folder for the data's lifetime.
print("Documents = backed up, Caches = purgeable, tmp = transient")Application Support
.applicationSupportDirectory przechowuje dane zarządzane przez aplikację, które nie są bezpośrednio widoczne dla użytkownika, na przykład bazy danych. Często tworzy się go przy pierwszym uruchomieniu.
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")Zapisywanie w Documents
Połącz adres URL katalogu z operacją zapisu, aby zachować dane użytkownika w piaskownicy.
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")Odczytywanie danych
Pliki w piaskownicy odczytuje się tak samo jak każdy plik wskazywany adresem URL, ponieważ ścieżka jest w pełni prawidłowa w obrębie kontenera.
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)
}Wyłączanie z kopii zapasowej
W przypadku dużych plików możliwych do odtworzenia należy ustawić wartość zasobu isExcludedFromBackup, aby nie powiększały niepotrzebnie kopii zapasowych iCloud.
import Foundation
var url = URL(fileURLWithPath: "/tmp/big.cache")
var values = URLResourceValues()
values.isExcludedFromBackup = true
try? url.setResourceValues(values)
print("Marked excluded from backup")Znaczenie piaskownicy
Ścieżki piaskownicy różnią się w zależności od instalacji i urządzenia, dlatego nigdy nie należy wpisywać ich na stałe. Katalogi należy zawsze ustalać w czasie działania za pomocą 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)")Szybki test
W którym katalogu należy przechowywać dane użytkownika, które muszą być uwzględniane w kopii zapasowej?
Podsumowanie
Aplikacje przechowują pliki w folderach piaskownicy ustalanych za pomocą FileManager.urls(for:in:): w Documents przechowuje się dane użytkownika objęte kopią zapasową, w Caches dane możliwe do odtworzenia, a w tmp pliki tymczasowe; dostępny jest również katalog Application Support. Ścieżki należy ustalać w czasie działania, nigdy nie wpisywać ich na stałe. To kończy kurs operacji wejścia i wyjścia na plikach.
Ucz się Swift dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 122
- Lekcje
- 409
Często zadawane pytania
Czy lekcja „Katalogi piaskownicy aplikacji” jest bezpłatna?
Tak — pełny tekst „Katalogi piaskownicy aplikacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Swift Academy, przejdź na CoddyKit PRO. Kurs Swift Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Katalogi piaskownicy aplikacji”?
Używanie lokalizacji Documents, Caches i tymczasowych. Ćwiczysz Swift Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Swift Academy?
Nie wymagamy żadnego doświadczenia. Swift Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Katalogi piaskownicy aplikacji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Swift Academy?
Tak. Każda lekcja Swift Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Adresy URL i ścieżki plików
- Odczytywanie i zapisywanie danych
- Zarządzanie katalogami
- Katalogi piaskownicy aplikacji