0

現在、オブジェクトのツリーをシリアル化するために NSCoding を使用していますが、そのうちの 1 つはデータ メンバーとして 1,000,000 エントリのネイティブ C float 配列を含んでいるため、encodeFloat:forKey: を使用してシリアル化するには、配列エントリごとに適用する必要があります。 1,000,000 個の役に立たないキー、非常に遅い可能性があります。これを処理するための好ましい方法は何ですか?

4

1 に答える 1

1

配列エントリごとに、1,000,000 個の役に立たないキーを適用する必要があります

いいえ、要素ごとに個別のキーは必要ありません。AC 配列はメモリの連続ブロックであるため、Hot Licks が提案したように、そのブロックから NSData オブジェクトを作成して格納するだけです。または、100 万個の float にはかなりの量のストレージが必要になるため、データを圧縮してから保存することもできます。実際、実際には NSData さえ必要ありません。バイトの範囲を直接エンコードできます-encodeBytes:length:forKey:

于 2013-08-11T15:36:56.410 に答える