Initializer

init(dictionary:copyItems:)

Initializes a newly allocated dictionary using the objects contained in another given dictionary. 新しくアロケートされた辞書を別の与えられた辞書の中に含まれるオブジェクトを使って初期化します。

Declaration 宣言

convenience init(dictionary otherDictionary: [AnyHashable : Any], 
       copyItems flag: Bool)

Parameters パラメータ

otherDictionary

A dictionary containing the keys and values with which to initialize the new dictionary. それで新しい辞書を初期化することになるキーと値を含んでいる辞書。

flag

If true, each object in otherDictionary receives a copyWithZone: message to create a copy of the object—objects must conform to the NSCopying protocol. In a managed memory environment, this is instead of the retain message the object would otherwise receive. The object copy is then added to the returned dictionary. trueならば、otherDictionaryの中の各オブジェクトはcopyWithZone:メッセージを受け取って、そのオブジェクトのコピーを作成します—オブジェクトはNSCopyingプロトコルに準拠しなければなりません。管理されたメモリ環境では、これは、そうでなければオブジェクトが受け取るであろうretainメッセージの代わりです。オブジェクトのコピーはそれからその返される辞書に加えられます。

If false, then in a managed memory environment each object in otherDictionary simply receives a retain message when it is added to the returned dictionary. falseならば、それから管理されたメモリ環境ではotherDictionaryの各オブジェクトは、それがその返される辞書に加えられるとき単にretainメッセージを受け取ります。

Return Value 戻り値

An initialized object—which might be different than the original receiver—containing the keys and values found in otherDictionary. 初期化されたオブジェクト – それは元のレシーバとは異なるかもしれません – otherDictionaryにおいて見つかったキーと値を含んでいます。

Discussion 議論

After an immutable dictionary has been initialized in this way, it cannot be modified. 不変の辞書がこの方法で初期化され終わった後は、それは修正されることはできません。

The copy(with:) method performs a shallow copy. If you have a collection of arbitrary depth, passing true for the flag parameter will perform an immutable copy of the first level below the surface. If you pass false the mutability of the first level is unaffected. In either case, the mutability of all deeper levels is unaffected. copy(with:)メソッドは、浅いコピーを行います。あなたが随意の深さのあるコレクションを持つならば、trueflagパラメータに渡すことは表面下の第一階層の不変のコピーを行うことになります。あなたがfalseを渡すならば第一階層の可変性は影響を受けません。両方の場合とも、すべてのより深い階層の可変性は影響を受けません。

See Also 参照

Creating a Dictionary from Another Dictionary 辞書を別の辞書から作成する