Logging, assert/precondition/fatalError
Catat status dengan print/debugPrint , lalu pilih antara assert (khusus debug), precondition (diperiksa saat rilis), dan fatalError (menyebabkan aplikasi berhenti) untuk invarian.
Logging, assert/precondition/fatalError adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 2. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 2 pelajaran total.
Peralatan diagnosis
Gunakan pencatatan sederhana untuk melihat keadaan; tegakkan asumsi dengan assert, precondition, dan fatalError.
- assert: pemeriksaan khusus debug
- precondition: juga diperiksa saat rilis
- fatalError: segera menghentikan program
Pencatatan ringan
print mudah dibaca; debugPrint menampilkan lebih banyak detail (berguna saat melakukan debug).
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)assert (khusus debug)
assert menghentikan program dalam mode Debug ketika kondisi bernilai salah; fungsi ini dihapus dalam build Release yang dioptimalkan.
// 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.precondition (diperiksa saat rilis)
precondition memvalidasi persyaratan penting dalam Debug dan Release. Gunakan ini untuk kesalahan pemrogram yang tidak boleh terjadi.
// 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 (hentikan sekarang)
fatalError segera menghentikan eksekusi dan melaporkan pesan. Gunakan ini untuk jalur kode yang tidak mungkin dicapai atau fungsi yang belum diterapkan selama pengembangan.
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)Kapan menggunakan yang mana
Pedoman:
- print/debugPrint untuk log cepat (hapus atau lindungi dengan tanda nanti).
- assert untuk pemeriksaan pengembang khusus debug.
- precondition ketika program tidak boleh melanjutkan dalam build apa pun jika persyaratan gagal.
- fatalError untuk jalur yang tidak mungkin dicapai atau belum diterapkan.
Diagnosis yang diperiksa saat rilis
Pemeriksaan singkat: Diagnosis mana yang tetap diperiksa dalam build Release?
Ringkasan
Ringkasan: Catat dengan print/debugPrint, lindungi invarian dengan assert (debug), precondition (juga saat rilis), dan gunakan fatalError untuk keadaan yang benar-benar tidak mungkin dicapai.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Logging, assert/precondition/fatalError” gratis?
Ya — teks lengkap “Logging, assert/precondition/fatalError” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 2 pelajaran total.
Apa yang akan aku pelajari di “Logging, assert/precondition/fatalError”?
Catat status dengan print/debugPrint , lalu pilih antara assert (khusus debug), precondition (diperiksa saat rilis), dan fatalError (menyebabkan aplikasi berhenti) untuk invarian. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Swift Academy?
Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 2.
Berapa lama pelajaran “Logging, assert/precondition/fatalError” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?
Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar XCTest (target, fixture)
- Logging, assert/precondition/fatalError