Mirror.AncestorRepresentation

enum 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":

func 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