Swift Academy · Lekcja

Katalogi piaskownicy aplikacji

Używanie lokalizacji Documents, Caches i tymczasowych.

Lekcja 4 z 413 kroki

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.

Bezpłatny start

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

  1. Adresy URL i ścieżki plików
  2. Odczytywanie i zapisywanie danych
  3. Zarządzanie katalogami
  4. Katalogi piaskownicy aplikacji
← Powrót do Swift Academy