プロトコル


CustomDebugStringConvertible


デバッグ目的に適した、カスタマイズされたテキスト表現を持つ型。


iOS 3.0+ iPadOS 3.0+ Mac Catalyst 13.0+ macOS 10.10+

tvOS 9.0+ VisionOS 1.0+ WatchOS 2.0+


protocol CustomDebugStringConvertible



必須 デフォルトの実装が提供されます。





概観


Swift は、あらゆる型に対してデフォルトのデバッグテキスト表現を提供します。このデフォルトの表現は、独自の表現を提供しない型の String(reflecting:) イニシャライザと debugPrint(_:) 関数によって使用されます。この表現をカスタマイズするには、型を CustomDebugStringConvertible プロトコルに準拠させます。


String(reflecting:) イニシャライザは 任意の 型のインスタンスに対して機能し、渡された値が CustomDebugStringConvertible に準拠している場合はインスタンスの debugDescription を返すため、型の debugDescription プロパティに直接アクセスしたり、CustomDebugStringConvertible を汎用制約として使用したりすることは推奨されません。


注意: dump(_:_:_:_:) 関数を呼び出してデバッガーに出力すると、String(reflecting:)Mirror(reflecting:) の両方を使用してインスタンスに関する情報を収集します。カスタム型に CustomDebugStringConvertible 準拠を実装する場合は、CustomReflectable 準拠も実装してカスタムミラーを提供することを検討してください。


CustomDebugStringConvertible プロトコルに準拠


debugDescription プロパティを定義して、カスタム型に CustomDebugStringConvertible 準拠を追加します。


たとえば、このカスタム Point 構造体は、標準ライブラリによって提供されるデフォルトの表現を使用します。


  1. struct Point {
  2. let x: Int, y: Int
  3. }
  4. let p = Point(x: 21, y: 30)
  5. print(String(reflecting: p))
  6. // Prints "Point(x: 21, y: 30)"


debugDescription プロパティを実装して CustomDebugStringConvertible への準拠を追加した後、Point は独自のカスタムデバッグ表現を提供します。


  1. extension Point: CustomDebugStringConvertible {
  2. var debugDescription: String {
  3. return "(\(x), \(y))"
  4. }
  5. }
  6. print(String(reflecting: p))
  7. // Prints "(21, 30)"




トピックス


インスタンスプロパティ


var debugDescription: String

デバッグに適した、このインスタンスのテキスト表現。

必須 デフォルトの実装が提供されます。





関連


以下による継承


CodingKey


準拠する型


AnyHashable

AnyKeyPath

Array

ElementCopyable かつ Escapable に準拠している場合に準拠します。


ArraySlice

ElementCopyable かつ Escapable に準拠している場合に準拠します。


AutoreleasingUnsafeMutablePointer

CVaListPointer

Character

ClosedRange

BoundComparable に準拠する場合に準拠します。


CollectionOfOne

ElementCopyable かつ Escapable に準拠している場合に準拠します。


ContiguousArray

ElementCopyable かつ Escapable に準拠している場合に準拠します。


Dictionary

KeyHashable に準拠し、ValueCopyable に準拠し、ValueEscapable に準拠する場合に準拠します。


Dictionary.Keys

KeyHashable に準拠し、ValueCopyable に準拠し、ValueEscapable に準拠する場合に準拠します。


Dictionary.Values

KeyHashable に準拠し、ValueCopyable に準拠し、ValueEscapable に準拠する場合に準拠します。


Double

Float

Float16

Float80

KeyPath

KeyValuePairs

KeyCopyable に準拠し、KeyEscapable に準拠し、ValueCopyable に準拠し、ValueEscapable に準拠する場合に準拠します。


ObjectIdentifier

OpaquePointer

Optional

WrappedCopyable および Escapable に準拠する場合に準拠します。


PartialKeyPath

Range

BoundComparable に準拠する場合に準拠します。


ReferenceWritableKeyPath

SIMD16

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD2

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD3

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD32

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD4

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD64

ScalarSIMDScalar に準拠する場合に準拠します。


SIMD8

ScalarSIMDScalar に準拠する場合に準拠します。


Set

ElementHashable に準拠する場合に準拠します。


StaticBigInt

StaticString

String

String.UTF16View

String.UTF8View

String.UnicodeScalarView

Substring

Unicode.Scalar

UnsafeBufferPointer

ElementEscapable に準拠している場合に準拠します。


UnsafeMutableBufferPointer

ElementEscapable に準拠している場合に準拠します。


UnsafeMutablePointer

PointeeEscapable に準拠する場合に準拠します。


UnsafeMutableRawBufferPointer

UnsafeMutableRawPointer

UnsafePointer

PointeeEscapable に準拠する場合に準拠します。


UnsafeRawBufferPointer

UnsafeRawPointer

WordPair

WritableKeyPath





以下も見よ


文字列表現


protocol CustomStringConvertible

カスタマイズされたテキスト表現を持つ型。


protocol LosslessStringConvertible

ロスのない、かつ明確な方法で文字列として表現できる型。















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ