A type that supplies a custom description for playground logging.
SDK
- Xcode 9.3+
Framework
- Swift Standard Library
Declaration
Overview
Playground logging can generate, at a minimum, a structured description of any type. If you want to provide a custom description of your type to be logged in place of the default description, conform to the Custom
protocol.
Playground logging generates a richer, more specialized description of core types. For example, the contents of a String
are logged, as are the components of an NSColor
or UIColor
. The current playground logging implementation logs specialized descriptions of at least the following types:
String
andNSString
Int
,UInt
, and the other standard library integer typesFloat
andDouble
Bool
Date
andNSDate
NSAttributed
String NSNumber
NSRange
URL
andNSURL
CGPoint
,CGSize
, andCGRect
NSColor
,UIColor
,CGColor
, andCIColor
NSImage
,UIImage
,CGImage
, andCIImage
NSBezier
andPath UIBezier
Path NSView
andUIView
Playground logging may also be able to support specialized descriptions of other types.
Conforming to the CustomPlaygroundDisplayConvertible Protocol
To add Custom
conformance to your custom type, implement the playground
property. If your implementation returns an instance of one of the types above, that type’s specialized description is used. If you return any other type, a structured description is generated.
If your type has value semantics, the playground
should be unaffected by subsequent mutations, if possible.
If your type’s playground
returns an instance which itself conforms to Custom
, then that type’s playground
will be used, and so on. To prevent infinite loops, playground logging implementations can place a reasonable limit on this kind of chaining.