Overview
概要
The map table is modeled after NSDictionary
with the following differences:
マップテーブルは、NSDictionary
を手本に作られて以下の違いを持ちます:
Keys and/or values are optionally held “weakly” such that entries are removed when one of the objects is reclaimed.
キーおよび/または値は、随意に “弱く” 保持されます、そのような登録項目はオブジェクトの1つが再利用される時に取り除かれます。
Its keys or values may be copied on input or may use pointer identity for equality and hashing.
それのキーまたは値は、入力においてコピーされるかもしれません、または等式とハッシュ化に対してポインタ識別を使うかもしれません。
It can contain arbitrary pointers (its contents are not constrained to being objects).
それは随意のポインタを含むことができます(それの内容はオブジェクトであるように制約されません)。
You can configure an NSMapTable
instance to operate on arbitrary pointers and not just objects, although typically you are encouraged to use the C function API for void * pointers. The object-based API (such as setObject(_:forKey:)
) will not work for non-object pointers without type-casting.
あなたは、NSMapTable
インスタンスを構成設定することで単なるオブジェクトでなく随意のポインタ上で演算できます、もっとも概してあなたはC関数APIをvoid * ポインターに使うことを推奨されます。オブジェクト基盤API(例えばsetObject(_:forKey:)
)は、非オブジェクトポインタを型キャストなしでは扱わないでしょう。
When configuring map tables, note that only the options listed in NSMapTableOptions
guarantee that the rest of the API will work correctly—including copying, archiving, and fast enumeration. While other NSPointerFunctions
options are used for certain configurations, such as to hold arbitrary pointers, not all combinations of the options are valid. With some combinations the map table may not work correctly, or may not even be initialized correctly.
マップテーブルを構成設定する時、NSMapTableOptions
において一覧にされるオプションだけが、APIの残りが正しく働くことを保証することに注意してください — コピー、アーカイブ化、そして高速列挙を行うことを含めて。他のNSPointerFunctions
オプションが特定の構成設定、例えば随意のポインタを保持するためなどのために使われる一方、オプションの組み合わせ全てが有効ではありません。いくつかの組み合わせでマップテーブルは正しく働かないかもしれません、または正しく初期化さえされないかもしれません。
Subclassing Notes
サブクラス作成の注意
NSMapTable
is not suitable for subclassing.
NSMapTable
は、サブクラスを作成するのに適しません。