私のアプリには、 'didReceiveMemoryWarning'通知を受け取っても持続する必要があるデータ構造がいくつかあります。データは、ユーザーがアプリで実行したすべてのアクション(ゲーム)の実行ログのようなものです。iphoneアプリケーションのデータを低メモリに保存する
私が持っているデータは少量ではないかもしれません(数百KBになる可能性があります)ので、正しい解決策であるようです。
最初の2つの可能性は、オブジェクトをアーカイブし、これらのオブジェクトでNSCodingプロトコルをサポートすることです。これが正しい選択肢かどうかは分かりません。
2番目のオプションは、NSManagedObjectModelとNSPersistentStoreCoordinatorを使用してCoreDataにあるようです。これは、これらのオブジェクトを格納するための良い方法ですか?それとも過剰なのですか? (Appleの「Recipes」サンプルアプリを参考にしています)。
私のオブジェクトは、最終的にNSString、NSNumber、NSIntegerなどの単純な型を保持するカスタムオブジェクト型です。私が持っているデータ型のいくつかの
サンプル:
// this the base object I need to start with to persist
@interface MyDataObject : NSObject
{
MyScore *aScore;
// Contains an object of type 'MyAction'
NSMutableArray *allActions;
}
@interface MyScore : NSObject
{
NSInteger currentScore;
NSDate lastUpdated;
}
@interface MyAction
{
NSNumber *actionId;
NSString *description
MyUser *associatedUser;
}
@interface MyUser
{
NSNumber *id;
NSString *name;
NSString *email;
}
ユーザーは別のゲームの束を再生することができますし、各ゲームのために、私は彼らが作った動く何のアクティビティログを持っています。ユーザーは各ゲームでこれまでに行った動きをプレイ中に見ることができ、アクティブなゲームである&を切り替えることもでき、過去の動きも確認できます。
データを使用する予定を投稿するのが適切です。どのようにデータにアクセス/取得したいのかは、どちらの方が優れた解決策であるかに影響を与えます。 – Jacob
この情報を含めるためにオリジナルの投稿を変更しました。 –