XCode 16.0 日本語化計画
説明定義をデバッガー型のサマリーに変換します。
このマクロは、Swift で記述された互換性のある記述実装を、Type Summary と呼ばれる LLDB 形式に変換します。Type Summary は LLDB の debugDescription に相当しますが、デバッグされたプロセス内でコードを実行しないという違いがあります。コード実行を回避することで、記述は潜在的な副作用なしに高速に生成され、IDE の変数リストなど、コード実行が行われない状況でも表示されます。
以下を例に考えてみましょう。この Team 構造体には、チーム名などの重要な詳細を要約した debugDescription があります。デバッガは、通常 po コマンドを使用して、オンデマンドでこの文字列のみを計算します。DebugDescription マクロを適用すると、一致する Type Summary が構築されます。これにより、ユーザは debugDescription を実行せずに、“Rams [11-2]” などの文字列を表示できます。これにより、デバッグ経験の使いやすさ、パフォーマンス、信頼性が向上します。
DebugDescription マクロは、debugDescription と description の両方、および 3 番目のオプションである lldbDescription というプロパティもサポートします。最初の 2 つは、CustomDebugStringConvertible および CustomStringConvertible プロトコルに準拠している場合に実装されます。追加の lldbDescription プロパティは、debugDescription と description の両方が実装されているが、DebugDescription マクロの要件を満たしていない場合に役立ちます。lldbDescription が実装されている場合、DebugDescription は debugDescription と description よりも lldbDescription を選択します。同様に、debugDescription は description よりも優先されます。
description (説明) の実装には以下の要件があります。
自身のミラーを明示的に提供する型。
protocol CustomLeafReflectable
明示的に自身のミラーを提供する型ですが、その子孫クラスは customMirror もオーバーライドしない限りミラー内に表されません。
protocol CustomPlaygroundDisplayConvertible
プレイグラウンドのログ記録にカスタムの説明を提供する型。
Quick Look 表現として使用できる型の合計。