2011-07-15 3 views
0

私はチュートリアルを読み、純粋なSQL、コアデータ、アーカイブ、NSUserDefaultsなどのデータを保存するためのさまざまな方法を見つけました。iOSでのコアデータの操作と状態の保存

さまざまな変数を持つクラスを作成するRPGのようなアプリケーションを作成することを考えています。 このクラスと状態は、アプリケーションのキャンセル、iPhoneの起動、およびアプリケーションの更新を通じて永続的に保存する必要があります。

私は以前の方法のどれをこれをフル充足しましたか?

また、コアデータに関する質問があります。 変数を保存したいだけの場合は、エンティティ内でたとえば日付を指定します。このプロパティはdateJustNowと呼ばれ、属性です。

II。 dateJustNowを保存するたびに新しい行を作成する必要がありますか?または、変数の1つの状態だけを保存し、必要なときにフェッチする他の方法はありますか? 多分私は変数(シングル)と属性(コレクション)をミックスしていますか?私に

敬具

答えて

1

ルールは次のとおりです。

  • 使用NSUserDefaultsアプリケーションの状態情報を保存します。これはアプリ自体の操作に関する情報です。最後の起動時間、優先フォント、最後に開いたビューなどがあります。ユーザーのデフォルトは普遍的なアクセスが可能で高速ですが軽量です。彼らはビットとデータのみを格納することができ、ロジックを格納しません。
  • コアデータを使用して、アプリケーションが処理する実際のデータとロジックをモデル化、管理、永続化します。コアデータは、大規模で複雑なデータとそれに関連するロジックを管理します。

ゲームの場合、NSUserDefaultsを使用してアプリの操作に関するデータを保存します。ユーザーは、アプリケーションが起動するビューの設定を行うことができます。ただし、ゲームのルールとゲームの状態の変化をエンコードする実際のロジックとデータは、コアデータに移動する必要があります。

0

あなたはORマッパーを探しているように、それが聞こえます。 SQLiteを直接使用して状態を保存します。マルチプレイヤーのオンラインRPGを作成する場合、Core Dataは大量のデータに最適でした。 this答えから

コアデータがいた/ Appleのエンタープライズオブジェクト フレームワーク、オブジェクトリレーショナルマッパー(ORM)の子孫がしっかりリレーショナルバックエンドに を縛られているが、コアデータがありますORMではありません。実際、オブジェクトグラフ管理フレームワークは です。

また、ここでは非常に良いの読み取りです:http://inessential.com/2010/02/26/on_switching_away_from_core_data

+0

アーカイブやNSUserDeafultsは、1人のプレイヤー(ユーザー)のパラメータを保存する方が便利ですか? – Nicke

+0

これはあなた次第です。あなたが便利で好きなものは何ですか? – Simeon

関連する問題