2

初めての本格的な iPhone アプリケーションの開発 (つまり、実際に AppStore で公開したいという意味です) では、自分のデータを表現するための適切な方法が必要でした。コア データを使用する代わりに、(ばかげていると思いますが) クラスを使用してデータを表現することにしました。

MMDot、MMShowMovement、MMShow の 3 つのクラスを作成しました。MMShowMovement は、MMShowMovement のインスタンスを保持するように、MMDot クラスのインスタンスを配列に保持します。それを行うには良い方法のように聞こえますが、各クラスにはそれに対応する必要がある多くのロジックがあるため、クラスはこのすべてのデータを表現するための良い方法のように思えました。

私の質問は、これらのクラスのインスタンスを保存して、アプリケーションを再度開いた後にデータを復元できる簡単な方法はありますか? NSKeyedArchiver を使用して OS X でアプリケーションを作成しましたが、iPhone でも同様ですか? 代わりに Core Data を使用してやり直す方が簡単でしょうか (これらのオブジェクトは非常に複雑です。特に、約 15 のインスタンス変数を持つ MMDot を見て、それほど複雑ではないかもしれません)。

私はここで本当に途方に暮れています。

4

3 に答える 3

2

NSKeyedArchiver を絶対に使用して、オブジェクトを永続化できます。私はどちらの方法のファンでもありますが、決定は主にアプリケーションのニーズにかかっています。CoreData でオブジェクトを再モデル化するのはたいした作業ではないと思います。アプリケーションについて何も知らなくても、単純なモデルで単純な永続化を行っている場合は、コア データは必要ないかもしれません。複雑な関係があり、アプリケーション セッション中にデータを頻繁に読み取り/永続化する場合は、コア データがおそらくその方法です。トーゴ。

于 2010-01-04T02:11:14.007 に答える
0

先日、クラスのシリアル化を検討していて、NSUserDefaultsを使用しました。オブジェクトのすべての内部に、オブジェクトに基づいた一意のキーを与えるだけです。私のために速く働くようでした。

ここにそれについてのブログを書きました:http://technolojiadev.blogspot.com/2009/12/serialize-this.html

于 2010-01-05T10:30:44.890 に答える
0

多くのオブジェクト インスタンスがある場合は、Core Data を使用した方がよいでしょう。これは、物事をキャッシュしたり、クエリで特定のオブジェクト セットを取得したりするのに役立ちます。KeyArchiving は、少数のインスタンスを保存する場合に非常に便利ですが、いくつかの欠点があります。特に、アーカイブされていないオブジェクトからのメモリ リークを追跡するのは困難です。

Core Data は、結果のページングも行うことができるため、必要のない場合に大きな配列の内容全体をフェッチすることはありません。

于 2010-01-04T03:12:41.013 に答える