3

すべてのデータ メンバーを に保存する必要がある状況では、構造体 (カスタム型、またはスカラー、つまり) を独自のラッパー ( ではなく)NSDictionaryに配置する方が理にかなっているので、エンコード/デコードのオーバーヘッドを回避できます。メンバーを取得または設定するたびに?CGPointNSValue

大きな構造体 (16 個の浮動小数点数) の場合、節約は IMO で重要です。しかし、CGPoint私は 4 バイトのコピーとエンコード/デコード時間を節約できます。

4

3 に答える 3

3

実際にはさらに一歩進んでください。構造体を完全に破棄して、モデルオブジェクトにします。次に、ロジック(たとえば、計算されたプロパティ)をそれに統合し、関連する形式でそれ自体をエンコードおよびデコードしたり、コレクションに入れたりする機能を提供できます。

于 2010-07-19T06:10:54.010 に答える
3

特定のケースで測定してみませんか?それが、それを見つけるための唯一の本当に信頼できる方法です。

両方のオプションが十分でない場合は、それに応じて値のコールバックCFDictionaryを設定することによってプレーンな構造体へのポインターを調べるか、スピンのために C++ /を取得できます (C++ での混合を気にしない場合)。std::mapstd::tr1::unordered_map

于 2010-07-19T02:51:45.570 に答える
1

とにかく、NSDictionary 型はメンバーとしてオブジェクトを必要とするため、NSDictionary に構造体を格納することはできません。コンテナオブジェクトにラップする必要があります。

于 2010-07-19T02:36:27.160 に答える