Logging, assert/precondition/fatalError
Registre o estado com print/debugPrint e escolha entre assert (apenas em depuração), precondition (verificado na versão de lançamento) e fatalError (falha) para invariantes.
Logging, assert/precondition/fatalError é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 2. 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 2 aulas no total.
Ferramentas de diagnóstico
Use um simples registro para visualizar o estado; imponha suposições com asserções, pré-condições e fatalError.
- asserção: verificações somente na depuração
- pré-condição: também verificada na versão de lançamento
- fatalError: interrompe imediatamente
Registro leve
A impressão é legível; debugPrint mostra mais detalhes (útil durante a depuração).
let user = ["name": "Ana", "role": "admin"]
print("User:", user) // user-friendly
debugPrint("User:", user) // includes type details when available
let point = (x: 3, y: 5)
print("Point:", point)
debugPrint("Point:", point)Asserção (somente na depuração)
A asserção interrompe o programa no modo Debug quando a condição é falsa; ela é removida em compilações Release otimizadas.
// Even numbers only (demo)
func half(of x: Int) -> Int {
assert(x % 2 == 0, "Expected even number, got \(x)")
return x / 2
}
print(half(of: 8)) // OK in Debug/Release
// In Debug, failing the assert would stop and print the message.
// In Release, assert checks are disabled by default.Pré-condição (verificada na versão de lançamento)
A pré-condição valida requisitos críticos em Debug e Release. Use-a para erros do programador que nunca devem ocorrer.
// Safe divide with required precondition
func safeDivide(_ a: Int, by b: Int) -> Int {
precondition(b != 0, "Divider must be nonzero")
return a / b
}
print(safeDivide(10, by: 2)) // 5
// If called with 0, precondition fails in Debug and Release.fatalError (pare agora)
fatalError interrompe a execução imediatamente e informa uma mensagem. Use-o para caminhos de código inalcançáveis ou funcionalidades não implementadas durante o desenvolvimento.
enum FileKind { case text, binary }
func open(kind: FileKind) {
switch kind {
case .text:
print("Open text mode")
case .binary:
print("Open binary mode")
// If we ever add a new case and forget to handle it, we could use:
// default: fatalError("Unsupported file kind")
}
}
open(kind: .text)Quando usar cada opção
Diretrizes:
- impressão/debugPrint para registros rápidos (remova-os depois ou controle-os com sinalizadores).
- asserção para verificações de desenvolvedor somente na depuração.
- pré-condição quando o programa não deve continuar em nenhuma compilação se um requisito falhar.
- fatalError para caminhos inalcançáveis ou não implementados.
Diagnóstico verificado na versão de lançamento
Verificação rápida: qual diagnóstico continua sendo verificado nas compilações Release?
Recapitulação
Recapitulação: registre com impressão/debugPrint, proteja invariantes com asserção (depuração), pré-condição (também na versão de lançamento) e use fatalError para estados realmente inalcançáveis.
Perguntas Frequentes
A aula “Logging, assert/precondition/fatalError” é grátis?
Sim — o texto completo de “Logging, assert/precondition/fatalError” é 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 2 aulas no total.
O que vou aprender em “Logging, assert/precondition/fatalError”?
Registre o estado com print/debugPrint e escolha entre assert (apenas em depuração), precondition (verificado na versão de lançamento) e fatalError (falha) para invariantes. 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 2 de 2.
Quanto tempo leva a aula “Logging, assert/precondition/fatalError”?
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
- Fundamentos do XCTest (destinos e fixtures)
- Logging, assert/precondition/fatalError