1

Objective-Cでは、可変コレクション整数(単調、非連続、かなり大きくなる可能性があります)をブール値に関連付ける必要があります。明らかな方法は、キーと値としてNSNumbersを含むNSDictionaryを使用することです。

それほど多くのオブジェクト作成を伴わないより良い方法はありますか?慣れていないテクニックがあるかどうかを学ぶほど、事前に最適化しようとはしていません。

このデータは特定のクラス実装にプライベートであるため、CocoaAPIの残りの部分と統合する必要はありません。

4

2 に答える 2

2

整数がポインターサイズであることに満足していると仮定すると、NSMapTable ( C APIも付属) またはCFDictionary (NSDictionary にブリッジされた通話料無料) を使用できます。

もちろん、(CF/Cocoa 以外の) C または C++ データ構造を使用することもできますが、Cocoa とはきれいに統合されません。

于 2009-10-18T02:18:56.240 に答える
1

あるスカラーを別のスカラーにマッピングする一般的なケースは、Cocoa がうまく処理できるものではありません。これは、Cocoa がオブジェクトに焦点を当てており、何かを提供する前にスカラーをラップする必要があるためです。しかし、ブール値の場合、可能なマップされた状態は 2 つしかないため、非常に便利な方法であるNSIndexSetが開かれます。セット内の存在 = ブール状態。

于 2009-10-18T02:39:55.253 に答える