0Pricing
Swift Academy · Lesson

Building Debug-Friendly Types

Combine descriptions and reflection effectively.

Combining the Tools

The best types are easy to inspect. Combine CustomStringConvertible, CustomDebugStringConvertible, and Mirror to make values that print clearly and reveal their internals on demand.

A Clean description

Start with user-facing output:

struct Vector: CustomStringConvertible {
    let x: Double
    let y: Double
    var description: String { "(\(x), \(y))" }
}
print(Vector(x: 1, y: 2))  // (1.0, 2.0)

All lessons in this course

  1. CustomStringConvertible
  2. CustomDebugStringConvertible
  3. Reflection with Mirror
  4. Building Debug-Friendly Types
← Back to Swift Academy