【Swift】CustomStringConvertibleでデバッグ出力をカスタマイズ
この記事からわかること
- SwiftのCustomStringConvertibleの使い方
- printでデバッグエリアに出力する際にカスタマイズする方法
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
環境
- Xcode:15.0.1
- iOS:17.0
- Swift:5.9
- macOS:Sonoma 14.1
CustomStringConvertibleとは?
公式リファレンス:CustomStringConvertibleプロトコル
CustomStringConvertible
はインスタンスを文字列に変換して出力する際の表現を定義するプロトロコルです。定義されているのはdescription
プロパティのみでここに指定されている文字列がprint
などでデバッグエリアに出力した際の文字列となります。
var description: String
例えば以下のような構造体があった場合にprint
してみると以下のような形式になります。
struct Score {
var high: Int
var low: Int
var average: Int
}
let score = Score(high: 100, low: 00, average: 50)
print(score) // Score(high: 100, low: 0, average: 50)
この出力文字列をカスタマイズしたい際にCustomStringConvertible
に準拠させdescription
内に出力したい形式定義しておけばprint
で出力する文字列が指定した形式に置き換えることができるようになります。
struct Score: CustomStringConvertible {
var high: Int
var low: Int
var average: Int
var description: String {
"high:\(high) low:\(low) average:\(average)"
}
}
let score = Score(high: 100, low: 00, average: 50)
print(score) // high:100 low:0 average:50
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。