Generic Initializer

init(_:children:displayStyle:ancestorRepresentation:)

Creates a mirror representing the given subject using a dictionary literal for the structure. 与えられた主題を表すミラーを、その構造体のための辞書リテラルを使って作成します。

Declaration 宣言

init<Subject>(_ subject: Subject, children: KeyValuePairs<String, Any>, displayStyle: Mirror.DisplayStyle? = nil, ancestorRepresentation: Mirror.AncestorRepresentation = .generated)

Parameters パラメータ

subject

The instance to represent in the new mirror. 新しいミラーの中で表現するインスタンス。

children

A dictionary literal to use as the structure for the mirror. The children collection of the resulting mirror may be upgraded to a random access collection later. See the children property for details. ミラーのための構造体として使うことになる辞書リテラル。結果となるミラーのchildrenコレクションは、後にランダムアクセスコレクションにアップグレードされるかもしれません。childrenプロパティを詳細として見てください。

displayStyle

The preferred display style for the mirror when presented in the debugger or in a playground. The default is nil. デバッガにまたはプレイグラウンドに含まれる時のミラーのための優先表示形式。省略時にはnilです。

ancestorRepresentation

The means of generating the subject’s ancestor representation. ancestorRepresentation is ignored if subject is not a class instance. The default is .generated. 主題のもつ先祖表現を生み出す手段。ancestorRepresentationは、subjectがクラスインスタンスでないならば無視されます。省略時は.generatedです。

Discussion 解説

You use this initializer from within your type’s customMirror implementation to create a customized mirror. Pass a dictionary literal with string keys as children. Although an actual dictionary is arbitrarily-ordered, when you create a mirror with a dictionary literal, the ordering of the mirror’s children will exactly match that of the literal you pass. あなたは、このイニシャライザをあなたの型のもつcustomMirror実装内部から使うことで、あつらえのミラーを作成できます。文字列キーを持つ辞書リテラルをchildrenとして渡してください。actual辞書は気まぐれに順番付けられますが、あなたがミラーを辞書リテラルで作成する時、ミラーの持つchildrenの順番付けは正確にあなたが渡すリテラルのそれと一致します。

If subject is a class instance, ancestorRepresentation determines whether ancestor classes will be represented and whether their customMirror implementations will be used. By default, the customMirror implementation of any ancestors is ignored. To prevent bypassing customized ancestors, pass .customized({ super.customMirror }) as the ancestorRepresentation parameter when implementing your type’s customMirror property. subjectがクラスインスタンスであるならば、ancestorRepresentationは、先祖クラスが表現されるかどうかをそしてcustomMirror実装が使われるかどうかを決定します。初期状態では、あらゆる先祖のcustomMirror実装は無視されます。あつらえの先祖を迂回することを防ぐには、.customized({ super.customMirror })ancestorRepresentationパラメータとして、あなたの型のもつcustomMirrorプロパティを実装する時に渡してください。