Generic Class

NSMapTable

A collection similar to a dictionary, but with a broader range of available memory semantics. 辞書に似たコレクション、しかしより幅広い範囲の利用可能なメモリ意味論を持ちます。

Declaration 宣言

class NSMapTable<KeyType, ObjectType> : NSObject where KeyType : AnyObject, ObjectType : AnyObject

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は、サブクラスを作成するのに適しません。

Topics 話題

Creating and Initializing a Map Table マップテーブルの作成と初期化

Accessing Content 内容にアクセスする

Manipulating Content 内容を操作する

Creating a Dictionary Representation 辞書表現を作成する

Accessing Pointer Functions ポインタ関数にアクセスする

Relationships 関係

Inherits From 継承元

Conforms To 次に準拠

See Also 参照

Pointer Collections ポインタコレクション