0

オブジェクト永続コードを設計しています。IMO、メモリスナップショットは、いくつかの制限内で最も高速で信頼性が高く、コンパクトな永続的な方法です。

C構造体を使えば簡単です。すべてのオブジェクトのメモリレイアウトを手動でレイアウトできます。すべての参照をオブジェクトコレクションのインデックスとして保存できます。したがって、参照は問題ではありません。

とにかく、Objective-Cオブジェクトでこれを試してみたいと思います。これを行うには、オブジェクトをメモリの特定の場所に配置する必要があります。したがって、割り当てのメモリ位置を指定できれば、メモリのスナップショットを作成できます。そして、復元するときに、特定のアドレスでオブジェクトを取得できます。

もちろん、これらはすべてマシン固有であり、多くのトリックが必要ですが、私にとっては問題ありません。唯一の問題は、新しいObjective-Cオブジェクトの場所を指定する方法がわからないことです。これどうやってするの?

4

1 に答える 1

0

一般的に、人々はNSCodingand NSKeyedArchiver(またはそのカスタムサブクラス)を使用します。オブジェクトのデータ部分は構造体を使用して実装されているため、Cメソッドは64ビットランタイムの前に機能していたと思いますが、新しいランタイムで脆弱でないインスタンス変数を使用すると、問題が複雑になると思います。いずれにせよ、永続オブジェクトをロードするプログラムには、ハードコーディングされているか、バンドルを介してロードされている、それらのクラス定義が必要です。

于 2012-06-21T19:39:03.103 に答える