Mirror.AncestorRepresentation

Representation of ancestor classes.

A CustomReflectable class can control how its mirror will represent ancestor classes by initializing the mirror with a AncestorRepresentation. This setting has no effect on mirrors reflecting value type instances.

Import
  • import Swift

Cases

case generated

Generate a default mirror for all ancestor classes.

This case is the default.

Note: This option generates default mirrors even for ancestor classes that may implement CustomReflectable's customMirror requirement. To avoid dropping an ancestor class customization, an override of customMirror should pass ancestorRepresentation: .Customized(super.customMirror) when initializing its Mirror.

Declaration

  •  
case customized(() -> Mirror)

Use the nearest ancestor's implementation of customMirror to create a mirror for that ancestor. Other classes derived from such an ancestor are given a default mirror.

The payload for this option should always be "{ super.customMirror }":

  • var customMirror: Mirror {
  •   return Mirror(
  •     self,
  •     children: ["someProperty": self.someProperty],
  •     ancestorRepresentation: .Customized({ super.customMirror })) // <==
  • }

Declaration

  •  
case suppressed

Suppress the representation of all ancestor classes. The resulting Mirror's superclassMirror is nil.

Declaration

  •