Swift 標準ライブラリ   >   Mirror   >   init(_:unlabeledChildren:displayStyle:ancestorRepresentation:)
汎用イニシャライザ
init(_:unlabeledChildren:displayStyle:ancestor
Representation:)
optional の displayStyle を使用して、unlabeledChildren によって与えられた child の値を持つ subject を表します。結果の child のラベルはすべて nil になります。
宣言
議論
このイニシャライザは、collection の mirror の時に、特に便利です。例えば:
extension MyArray : CustomReflectable { var customMirror: Mirror { return Mirror(self, unlabeledChildren: self, displayStyle: .collection) } }
subject がクラスインスタンスでない場合、ancestorRepresentation は無視されます。それ以外の場合、ancestorRepresentation は、祖先クラスが表現できるかどうか、およびそれらの customMirror の実装が使用されるかどうかを決定します。デフォルトでは、表現は自動的に生成され、すべての customMirror 実装はバイパスされます。カスタマイズされた祖先をバイパスするのを防ぐために、customMirror のオーバーライドは、Mirror を以下のように初期化する必要があります。
ancestorRepresentation: .customized({ super.customMirror })
関連
汎用の制約
C : Collection
C.SubSequence : Collection
C.SubSequence.SubSequence == C.SubSequence
C.Indices : Collection
C.Indices.Iterator.Element == C.Index
C.Indices.Index == C.Index
C.Indices.SubSequence == C.Indices