質問

私の最初の深刻なiPhoneアプリケーションの開発で(つまり、実際にAppStoreで出したい)、データを表現する良い方法が必要でした。コアデータを使用する代わりに、私(愚かに、私は)クラスを使用してデータを表現することにしました。

MMDOT、MMShowMovement、Mmshowの3つのクラスを作成しました。 mmshowmovementは、mmshowがmmshowmovementのインスタンスを保持しているため、配列にmmdotクラスのインスタンスを保持します。それを行う良い方法のように聞こえました、各クラスにはそれに合わせなければならない多くのロジックがあるので、クラスはこのすべてのデータを表現する良い方法のように思えると思いました。

私の質問は、これらのクラスのインスタンスを保存する簡単な方法があるので、アプリケーションが再開された後にデータを復元できるということです。私はnskeyedarchiverを使用してOS Xで申請をしましたが、iPhoneで似ていますか?代わりにコアデータを使用して再び開始する方が簡単ですか(これらのオブジェクトは非常に複雑です。特に、約15のインスタンス変数を備えたMMDOTは、これを見ているので、それほど複雑ではないかもしれません)?

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

役に立ちましたか?

解決

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

他のヒント

多くのオブジェクトインスタンスがある場合は、おそらくコアデータを使用する方が良いでしょう。物事のキャッシュに役立ち、特定のオブジェクトのセットを取得するためのクエリを支援します。 Keyarchivingは、ほんの一握りのインスタンスを節約している場合に本当に便利ですが、いくつかの欠点があります。特に、概要のないオブジェクトからのメモリリークを追跡することは困難です。

コアデータも結果のページングを行うことができます。そのため、必要でない場合は大きな配列の端末のコンテンツを取り込んでいません。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top