0

アプリの現在のセッション情報 (lastLocation、remoteSessionToken など) を保持して保存したい Session クラスがあります。

多数のテーブルを備えたデフォルトのコアデータセットアップがあり、最も明白な解決策は、「フィールド」と「値」の2つの文字列フィールドを持つテーブル「セッション」をもう1つ作成し、セッション情報をこのテーブルに次のように保存することです情報を他のテーブルに保存する

  'field'             'value'
lastLocation        46.68,34.18
removeSessionToken  au987asdv7tta487tv9b
...

また、YAML または JSON 形式で fx を設定するための特別な別のファイルを使用してこれを行うことができることはわかっていますが、これは Core Data データベースとファイルの両方を持つことで論理的な矛盾につながります。

セッション情報を保持および永続化するための推奨される方法はありますか?

4

2 に答える 2

2

次のようなものが当てはまらない場合は、ユーザーのデフォルトまたはドキュメントディレクトリの特別な目的のファイルに入れてください。

  • 多くのセッションがあり、ある種の述語に基づいてそれらを検索またはフィルタリングする必要があります
  • 複数のセッションがあり、セッションはデータストア内の特定のオブジェクトと何らかの関係があります。

CoreDataと個別のファイルを使用することは「論理的な矛盾」ではありません。理にかなっていることをしなさい。この情報をデータストアに保持することは意味がない可能性が高いため、やむを得ない理由がない限り、保持しないでください。

情報が機密情報であると見なされる可能性がある場合は、それをキーチェーンに入れます。

また、CoreDataでジェネリックコンテナエンティティを作成するのは非常に醜いです。fieldあなたが説明するようなフィールドを使用valueすることは、良い設計上の決定ではありません。

于 2013-01-10T23:36:54.377 に答える
0

機密情報でない限り、私は一貫して Core Data を使用します。よりわかりにくい場所は、NSUserDefaults に配置することです。

于 2013-01-10T19:55:24.720 に答える