J'ai certaines structures de données dans mon application que je dois conserver à la réception de la notification 'didReceiveMemoryWarning'. Les données sont en quelque sorte un journal actif de toutes les actions que l'utilisateur a effectuées avec l'application (qui est un jeu)Stockage des données de l'application iphone en mémoire insuffisante
Les données que j'ai peuvent ne pas être une petite quantité (possible> quelques centaines de Ko), donc plists don ne semble pas être la bonne solution.
La première des deux possibilités est l'archivage d'objets et la prise en charge de ces objets par le protocole NSCoding. Je ne suis pas sûr que ce soit le bon chemin à choisir.
La deuxième option semble être avec CoreData, en utilisant NSManagedObjectModel et NSPersistentStoreCoordinator. Est-ce un bon moyen de stocker ces objets? Ou est-ce exagéré? (J'utilise l'exemple d'application "Recettes" d'Apple pour référence).
Mes objets sont des types d'objets personnalisés qui contiennent éventuellement NSString, NSNumber, NSInteger et d'autres types simples.
Exemple de quelques-uns des types de données dont je dispose:
// 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;
}
L'utilisateur peut jouer un tas de jeux différents et pour chaque jeu, j'ai un journal d'activité de ce qui bouge qu'ils ont fait. L'utilisateur peut voir les mouvements effectués jusqu'à présent dans chaque jeu pendant qu'il joue et il peut également basculer entre les jeux inactifs & pour pouvoir également passer en revue les mouvements passés.
Il serait pertinent de publier ce pour quoi vous allez utiliser les données. Comment vous voulez accéder/récupérer les données aura une incidence sur quelle est la meilleure solution. – Jacob
modifié mon message original pour inclure cette information. –