У меня есть некоторые структуры данных в моем приложении, которые мне нужно сохранить после получения уведомления «didReceiveMemoryWarning». Данные представляют собой текущий журнал всех действий, которые пользователь выполнил с приложением (которое является игрой)
Данные, которые у меня есть, могут быть небольшим (возможно, несколько сотен КБ), поэтому списки не являются правильным решением.
Первая из двух возможностей - это архивирование объектов и обеспечение поддержки этих объектов протоколом NSCoding. Я не уверен, что это правильный путь для выбора.
Второй вариант, по-видимому, связан с CoreData с использованием NSManagedObjectModel и NSPersistentStoreCoordinator. Это хороший способ хранить эти объекты? Или это излишне? (Я использую образец приложения «Рецепты» от Apple для справки).
Мои объекты - это пользовательские типы объектов, которые в конечном итоге содержат 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;
}
Пользователь может играть в кучу разных игр, и для каждой игры у меня есть журнал активности, которые они сделали. Пользователь может видеть ходы, которые он проделал в каждой игре, пока он играет в нее, и он также может переключаться между активными и неактивными играми, чтобы он также мог просматривать прошлые ходы.