Swift Academy · Aula

Diretórios do Sandbox do Aplicativo

Use Documents, Caches e locais temporários.

Aula 4 de 413 etapas

Diretórios do Sandbox do Aplicativo é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Diretórios de Sandbox do app

Os apps são executados em um ambiente isolado: eles só podem gravar dentro do próprio contêiner. Há pastas padrão para documentos, caches e arquivos temporários.

Encontrando o Diretório de Documentos

FileManager.urls(for:in:) retorna as URLs de um diretório conhecido. .documentDirectory armazena dados do usuário que devem ser incluídos na cópia de segurança.

import Foundation

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

Criando URLs de Arquivos

Acrescente um nome de arquivo à URL do diretório para obter um caminho completo para seus próprios arquivos.

import Foundation

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

O Diretório de Cache

.cachesDirectory armazena dados que podem ser regenerados. O sistema pode removê-los quando houver pouco espaço em disco; portanto, nunca mantenha aqui dados insubstituíveis.

import Foundation

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

O Diretório Temporário

FileManager.default.temporaryDirectory fornece um espaço de trabalho para arquivos de curta duração, que você deve limpar por conta própria.

import Foundation

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

Documentos vs. Cache vs. Temporários

Use Documentos para dados criados pelo usuário, incluídos na cópia de segurança; Cache para dados reproduzíveis; e tmp para arquivos descartáveis.

import Foundation

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

Suporte do app

.applicationSupportDirectory armazena dados gerenciados pelo app que não são diretamente visíveis ao usuário, como bancos de dados. Em geral, você o cria na primeira inicialização.

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

Salvando em Documentos

Combine a URL do diretório com uma chamada de gravação para persistir os dados do usuário dentro do ambiente isolado.

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

Lendo Novamente

Leia os arquivos do ambiente isolado da mesma forma que qualquer URL de arquivo, pois o caminho é totalmente válido dentro do contêiner.

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

Excluindo da Cópia de Segurança

Defina o valor de recurso isExcludedFromBackup em arquivos grandes e regeneráveis para que eles não aumentem excessivamente as cópias de segurança do 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")

Por Que o Isolamento é Importante

Os caminhos do ambiente isolado diferem a cada instalação e em cada dispositivo; portanto, nunca os codifique diretamente. Sempre resolva os diretórios em tempo de execução com 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)")

Verificação Rápida

Qual diretório deve armazenar os dados do usuário que precisam ser incluídos na cópia de segurança?

Recapitulação

Os apps armazenam arquivos em pastas do ambiente isolado, resolvidas por meio de FileManager.urls(for:in:): Documentos para dados do usuário incluídos na cópia de segurança, Cache para dados regeneráveis, tmp para arquivos temporários, além do Suporte do app. Resolva os caminhos em tempo de execução; nunca os codifique diretamente. Isso conclui o curso de E/S de Arquivos.

Grátis para começar

Aprenda Swift com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
122
Aulas
409

Perguntas Frequentes

A aula “Diretórios do Sandbox do Aplicativo” é grátis?

Sim — o texto completo de “Diretórios do Sandbox do Aplicativo” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Diretórios do Sandbox do Aplicativo”?

Use Documents, Caches e locais temporários. Você pratica Swift Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Swift Academy?

Nenhuma experiência prévia é necessária. Swift Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “Diretórios do Sandbox do Aplicativo”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Swift Academy?

Sim. Cada aula de Swift Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. URLs e Caminhos de Arquivos
  2. Leitura e Gravação de Dados
  3. Gerenciamento de Diretórios
  4. Diretórios do Sandbox do Aplicativo
← Voltar para Swift Academy